set()函数创建一个无序不重复元素集,可以删除重复数据,还可以计算交集、差集、并集等

set可以看成数学意义上的无序和无重复元素的集合

语法

set([iterable])

参数

iterable:可迭代对象

返回值

返回新的集合对象

实例

x = set('eleven')
y = set('twelve')
# 删除重复值(返回的集合对象是无序的)
# {'e', 'n', 'v', 'l'} {'e', 'v', 'l', 'w', 't'}
print(x,y) 

# 交集 & : x&y,返回一个新的集合,包括同时在集合 x 和 y 中的共同元素
# {'e', 'v', 'l'}
print(x & y) 

# 并集 | : x|y,返回一个新的集合,包括集合 x 和 y 中所有元素
# {'e', 'n', 'v', 'l', 'w', 't'}
print(x | y)

#差集 - : x-y,返回一个新的集合,包括在集合 x 中但不在集合 y 中的元素
# {'n'}
print(x - y)

#补集 ^ : x^y,返回一个新的集合,包括集合 x 和 y 的非共同元素
# {'w', 'n', 't'}
print(x ^ y)

扩展 

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果,remove(key)方法可以删除元素

new_set = set([1,2,3])
print(new_set) # {1, 2, 3}

new_set.add(4)
print(new_set) # {1, 2, 3, 4}

new_set.add(4)
print(new_set) # {1, 2, 3, 4}

new_set.remove(1)
print(new_set) # {2, 3, 4}

set()与sorted()方法结合,不改变原来的数据顺序

# 字符串
number = 'eleven'
set_number = set('eleven')
res1 = ''.join(set_number)
res2 = ''.join(sorted(set_number,key = number.index))
# res1输出结果无顺序
print(res1) # evln
# 按照number字符串下标进行排序
print(res2) # elvn


# 数组列表
city = ['上海', "广州", "上海", "成都", "上海", "上海", "北京", "上海", "广州", "北京", "上海"]
# 改变原来顺序
print(list(set(city))) # ['上海', '北京', '广州', '成都']

# 改变原来数据的顺序
city_set = set(city)
new_city = sorted(city_set, key=city.index)
print(new_city) # ['上海', '广州', '成都', '北京']

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐