Python数据类型 — 集合

系统 1088 0

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系
            
              s = set ([3, 5, 9, 10])  # 创建一个数值集合
t = set ("Hello")  # 创建一个唯一字符的集合

a = t | s  # t 和 s的并集
b = t & s  # t 和 s的交集

c = t - s  # 求差集(项在t中,但不在s中)
d = t ^ s  # 对称差集(项在t或s中,但不会同时出现在二者中)
            
          

基础功能

            
              List = [1,2,5,6,8]
List = set(list)  # 把list设置为集合;只要设置为集合,则会自动去重;

xx = set(('apple','pear'))  # 创建一个含有多个元素的集合
print(xx)

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)   # 这里演示的是去重功能

# 增
basket.add('Love')  # 集合中没有insert;
basket.update('Aa','Bb')  # 参数可以是列表,元组,字典
basket.update( {"字符串"} )  # 将字符串添加到集合中。
basket.update( "字符串" )  # 将字符串拆分单个字符后,然后再一个个添加到集合中,有重复的会忽略。

# 删
#basket.remove('Aa')  # 如果元素不存在,则会发生错误
basket.discard("Aa")  # 如果元素不存在,不会发生错误discard,丢弃;
basket.pop()  # 随机删除一个元素
basket.clear()  # 清空集合


# 查
print(len(basket))  # 返回集合的长度

# 判断
print('a' in basket)  # 'a' not in basket

            
          

集合操作

            
              s = set([1,3,5,7])
t = set([2,3,4,5])

# 集合的并集
print(t | s)  # t和s的并集
print(t.union(s))

# 集合的交集
print(set1.intersection(set2))
print(set1 & set2)
print(set1.isdisjoint(set2))  # 判断两个集合是否有交集,有则返回true;没有则返回false

# 集合的差集(补集)
print(set1.difference(set2)) #set1里有,set2里没有
print(set1-set2)
print(set2.difference(set1)) #set2里有,set1里没有
print(set2-set1)

# 集合的对称差集
print(set1.symmetric_difference(set2))#我有你没有的  加上 你有我没有的
print(set1^set2)

# 集合的子集
set3=set([4,5])
print(set3.issubset(set1))    #判断set3是否为set1的子集
print(set1.issuperset(set3))  #判断set1是否包含set3
            
          

集合遍历

            
              # 集合遍历
# 注意:set没有索引!

for index,i in enumerate(set7):  //遍历
    print(index,i)

            
          

集合生成式

语法: { 表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] }

集合推导式和字典推导式的格式完全相同,那么给定一个类似的推导式,如何判断是哪种推导式呢?最简单直接的方式,就是根据表达式进行判断, 如果表达式以键值对(key:value)的形式,则证明此推导式是字典推导式 ;反之,则是集合推导式。

            
              # 集合元素的唯一性
tupledemo = (1,1,2,3,4,5,6,6)
setnew = {x**2 for x in tupledemo if x%2==0}
print(setnew)
# 输出:{16, 4, 36}

# 集合元素的无序性
dictdemo = {'1':1,'2':2,'3':3}
setnew = {x for x in dictdemo.keys()}
print(setnew)
# 输出:{'2', '1', '3'}
            
          

 

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论