python中集合的概念,python集合的元素可以是集合吗
python的用途:1。您可以使用该集合进行复制。方法是将列表添加到集合中,然后遍历它,最后打印出重复的结果。2.使用集合来测试关系,例如,差集和并集。
一、什么是集合:
集合是不重复元素的无序序列。
重要提示:集合中的元素是不可重复的,并且集合中的元素是无序的。
集合是一个可变的容器。
集合中的所有数据对象都是唯一的(不能重复)。
集合是可迭代对象。
集合相当于一个只有键没有值的字典(键是集合中的数据)。
集合中的元素可以设置不可变类型frozenset()
当集合pop()被删除时,它类似于队列FIFO。
也就是说,集合可以像元组一样设置为不可变类型;也可以默认迭代改变,像字典和列表;同时,集合中的元素可以是列表、元组和字典。
二、为什么要使用集合
set的特性决定了它简单、高效、快速。
例如,当使用列表进行复制时:
列表1=[1,2,3,4]
列表2=[3,4,5,6]
list3=[]
列表1:
ifiinlist2:
list3.append(i)
打印(列表3)利用集合去重:
我的列表=[1,2,3,4,2,3,1,2,2]
#转换为集合
我的集合=集合(我的列表)
打印(列表(我的集合))#结果
[1,2,3,4]三、集合可以进行如下基本操作:
1、 创建字典
您可以使用花括号{}或set()函数来创建集合。注意:必须使用set()而不是{}来创建空集,因为{}用于创建空字典。
my_set=set((苹果,))
我的集合
{ 苹果 }2、添加元素(add(),update())
#add作为一个整体添加到集合中
my_set=set()
my_set.add(abc )
打印(我的集合)
#update是把要传入的元素拆分出来,作为个体传入集合。
my_set=set()
my_set.update(abc )
打印(我的设置)3、删除元素(remove(),pop(),discard())
#remove如果收藏物种存在,直接删除;否则,程序会报告一个错误格式:集合名称。移除(元素)
my_set={11,13,15}
my_set.remove(
13)
print(my_set)my_set.remove(131)
print(my_set)
#pop随机删除集合中的元素如果集合中没有元素则程序报错
my_set={11,13,15}
my_set.pop()
print(my_set)
#discard如果集合中元素存在,直接删除;如果元素不存在不做任何操作格式:集合名.discard(元素)
my_set={11,13,15}
my_set.discard(13)
print(my_set)
my_set.discard(131)
print(my_set)4、交集( & )
set1={9,2,3,4}5、 并集( )set2={3,4,5,16}
new_set=set1&set2
print(new_set)
#result{3,4}
set1={1,2,3,4}6、 差集(-)set2={3,5,5,6}
new_set=set1set2
print(new_set)
#result{1,2,3,4,5,6}
项在前一个集合中,但不在后一个集合中。
set1={1,2,3,4}7、对称差集( ^ )set2={3,4,5,6}
new_set=set1-set2
print(new_set)
#result{1,2}
即项在前一个集合或后一个集合中,但不会同时出现在二者中。即交集减去并集。
set1={1,2,3,4}8、子集判断set2={3,4,5,6}
new_set=set1^set2
print(new_set)
#result{1,2,5,6}
set1={3,4}9、父集判断set2={3,4,5,6}
#判断set1是否是set2的子集
print(set1.issubset(set2))
#resultTrue
set1={3,4}10、迭代和枚举set2={3,4,5,6}
#判断set1是否是set2的父集
print(set1.issuperset(set2))
#resultFalse
s={34,56,76,34,56,54,43,23,56}可观察出,集合会自动过滤掉相同元素。foriins:
print(i)##迭代输出其内容
fori,vinenumerate(s):
print('index:%s,value:%s'%(i,v))
"""
result:
index:0,value:34
index:1,value:43
index:2,value:76
index:3,value:54
index:4,value:23
index:5,value:56
"""
推荐课程:Python从零开始学编程(黑马程序员)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。