python数据类型之初识Set(集合)

一、其他数据类型创建的回顾

1.列表
方法一:

a=[1,2,3]

方法二:

a=list([1,2,3])

2.元组
方法一:

b=('abc',123,'李四')

方法二:

b=tuple(['abc',123,'李四'])

3.字典
方法一:

c={'name':'张三','age':22}

方法二:

c=dict((('name','张三'),('age',22)))

二、 集合的创建只有一种,由关键字set创建:

d=set(对象)

注意:
1.使用set关键字创建集合时,该对象可以是任意数据类型,但是该对象中所有元素的数据类型必须是可哈希的,集合本身不可哈希的,且是无序的
2.可哈希的数据类型包括:数字、字符串、元组等
3.集合是一个自动去重的数据类型
4.由于集合之间不像列表或者字典那样存在索引,对于集合中元素的获取和通过迭代器或者for循环实现
5.集合与集合间存在着各种关系,如:包含与被包含关系,交集,并集,差集,反向交集(除了交集以外的元素组成的集合)

1.集合的创建及其他问题

1.1在列表a中,所有元素是可哈希的,且存在重复值,从最后输出结果可看出,集合自动将列表中元素进行了去重处理,并且数据是无序的

a=[1,3,2,3,'a','b',(11,22,33),'b','c']        #以列表为例,此时列表中元素皆是可哈希的数据类型
d=set(a)        #创建集合d
print(d)        #输出结果:{1, 2, 3, (11, 22, 33), 'b', 'c', 'a'}

1.2将列表a的元素中添加一个不可哈希的数据,看其输出结果,可看出,报错为list数据类型不可哈希

a=[['张三','李四'],1,3,2,3,'a','b',(11,22,33),'b','c']#此时,列表a中嵌套了一个不可哈希的列表元素
d=set(a)
print(d)        #报错:TypeError: unhashable type: 'list'

2.集合间的关系操作

2.1并集 union 或者 |

a=set([1,2,3,4,5])
b=set([3,4,5,6,7])
#方法一:
print(a.union(b))       #使用union(),实现并集
#方法二:
print(a | b)           #使用 (集合a | 集合b) 实现并集

2.2交集 intersection 或者 &

a=set([1,2,3,4,5])
b=set([3,4,5,6,7])
#方法一:
print(a.intersection(b))   #{3,4,5}
#方法二:
print(a & b)    ##{3,4,5}

2.3差集 difference 或者

a=set([1,2,3,4,5])
b=set([3,4,5,6,7])


print(a.difference(b))          #{1, 2}  在交集的基础上,存在于a中不存在于b中的元素
print(a - b)


print(b.difference(a))          #{6, 7}  在交集的基础上,存在于b中不存在于a中的元素
print(b - a)

2.4反向交集(除了交集以外的元素组成的集合)symmetric_difference 或者 ^

a=set([1,2,3,4,5])
b=set([3,4,5,6,7])
print(a.symmetric_difference(b))       #{1, 2, 6, 7}
print(a ^ b)        #{1, 2, 6, 7}

2.5包含(> 、< 、 =)

a=set([4,5])
b=set([3,4,5,6,7])
print(a <= b)       #True   b包含a
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值