在Python中,使用大括号{ }或set()函数创建集合,如 {item,item.......}
需要特别注意的点: 当我们要创建一个空集合的时候,只能用set()进行创建,因为{ }表示的是空的字典
集合常见的操作:
# 使用大括号{ }或set()函数创建集合 # set={111,222,333,444} # print(set) # 注意不能同时用这两种方式哦! st=set() # 集合常见的操作 # set.add(item) 往集合里添加一个元素 st.add(11) print(st) # set.update(item) 往集合里添加元素,item是可迭代对象如:列表、元组、字典等 st.update([111,222,333]) print(st) # set.remove(item) 将元素 item 从集合 set 中移除,如果元素不存在,则会发生错误。 # st.remove(111) # print(st) # set.discard(item) 将元素 item 从集合 set 中移除,如果元素不存在,不会发生错误 st.discard(1110) print(st) # set.pop() 随机取出并删除一个元素 st.pop() print(st) ### len(set) 计算集合个数######## print(len(st)) ############################ # set.clear() 清空集合 st.clear() print(len(st)) # union() 取两个集合的并集 s1={1,2,3} s2={1,2,3,4} print(s1.union(s2)) #成员是无序的==>hash值来存放的 names={"mike","john","andy"} print(names) print(hash("mike")) print(hash("john")) print(hash("andy")) #怎么看起来是没有发生变化呢?==》hash值来存放的 print(s1) s1={6,7,8} print(s1) #数据不可以重复 names={"mike","mike","mike"} print(names)
说明:
为什么set里面存储数字s1={1,2,3}的时候,就是有序的呢?
其实不然元素往set里存储前,会计算hash值,这个hash值决定了其存储的位置,只是刚 好数字1,2,3的hash值对应也是从小到大
s1={6,7,8}变得越来越有趣,结果为但是输出的结果却不是按顺序了。==》按hash值决定了其存储的位置!!
成员不可重复出现(多次放入同一个元素,只算一个)