美文网首页
集合set()

集合set()

作者: 星辰_1c3b | 来源:发表于2019-12-19 23:04 被阅读0次

集合set({})是可变的数据类型,但里面的元素是不可变的,可哈希,无序,不重复的
即集合内不能包含列表,字典等

#集合的表示方式
set1=set({1,2,3,"as","we"})
set2={1,2,3,"as","we"}
print(set1)
print(set2)
>>>
{1, 2, 3, 'we', 'as'}
{1, 2, 3, 'we', 'as'}

set3={[1,2,3,3,4],{"name":"张三","age":"18"}}
print(set3)
>>>
    set3={[1,2,3,3,4],{"name":"张三","age":"18"}}
TypeError: unhashable type: 'list'
#冻结集合,不可变数据类型,与集合刚好相反,但也是无序,不重复的,冻结集合不可增,删,只能查
set1={"张三","李四","王五"}
set2=frozenset("ABCD")
print(set1,type(set1))
print(set2,type(set2))
>>>
{'李四', '张三', '王五'} <class 'set'>
frozenset({'C', 'A', 'B', 'D'}) <class 'frozenset'>

1.增

set1={"张三","李四","王五"}
set1.add("alen")#新增元素到集合中
print(set1)
>>>{'张三', '王五', '李四', 'alen'}

set1={"张三","李四","王五"}
set1.update("abc")#是增加最小元素到集合中
print(set1)
>>>{'c', 'a', '王五', 'b', '李四', '张三'}

2.删

set1={"张三","李四","王五"}
print(set1.pop())#有返回值,是随机删除
print(set1)
>>>
张三
{'李四', '王五'}

set1={"张三","李四","王五"}
print(set1.remove("王五"))#无返回值,指定元素删除
print(set1)
》》》
None
{'张三', '李四'}

set1={"张三","李四","王五"}
print(set1.clear())#无返回值,清空列表
print(set1)
》》》
None
set()#空列表

set1={"张三","李四","王五"}
del set1#删除列表
print(set1)
》》》
    print(set1)
NameError: name 'set1' is not defined

3.查

set1={"张三","李四","王五"}
for i in set1:#集合是无序的,输出的结果也不是每次都一样的
    print(i)
>>>
张三
王五
李四

4.其他

#交集
set1={"张三","李四","王五"}
set2={"张三","Green","Jack"}
print(set1&set2)
print(set1.intersection(set2))
》》》
{'张三'}
{'张三'}

#并集
set1={"张三","李四","王五"}
set2={"张三","Green","Jack"}
print(set1|set2)
print(set1.union(set2))
》》》
{'李四', 'Green', 'Jack', '张三', '王五'}
{'李四', 'Green', 'Jack', '张三', '王五'}

#差集,第一个集合除了与第二个集合共有之外的元素
set1={"张三","李四","王五"}
set2={"张三","Green","Jack"}
print(set1-set2)
print(set1.difference(set2))
》》》
{'李四', '王五'}
{'李四', '王五'}

#反交集,除了共有的元素之外,各集合的元素组合在一起
set1={"张三","李四","王五"}
set2={"张三","Green","Jack"}
print(set1 ^ set2)
print(set1.symmetric_difference(set2))
》》》
{'Green', '李四', '王五', 'Jack'}
{'Green', '李四', '王五', 'Jack'}

#子集与超集
set1={"张三","李四","王五"}
set2={"张三","李四","王五","Green","Jack"}
print(set1 < set2) #set1是set2的子集,set2是色图的超集
print(set1.issubset(set2))#set1是set2的子集,set2是色图的超集
》》》
True
True

相关文章

网友评论

      本文标题:集合set()

      本文链接:https://www.haomeiwen.com/subject/nkgvnctx.html