Python基础 day07--集合

Python2.3版本的时候,引入了一种新的数据类型——集合(set)。

集合是由序列(也可以是其他的可迭代的对象)构建的,是无序的可变的而数据类型。

Python中,集合用一对大括号"{}"表示,集合内的各个元素用逗号分隔。由不同元素组成的集合,集合是一组无序排列 可hash值,可作为字典的key;集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无须纠结于集合中的单个值,也就是说集合中是没有重复元素的。通过者一特点,可以将带有重复元素的列表通过代码转换成集合,可以做去重操作,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

s = set()
print(s)
# 结果:set()
print(type(s))
# 结果:<class 'set'>
s1 = {1, 2, 3}
print(s1)
# 结果:{1, 2, 3}

字典和集合的区别,字典虽然也是一对大括号,但是期内是键值对形式的,而集合是用逗号隔开元素的。我们也可以用set()函数将列表、元组等其他可迭代的对象转换为集合。

lst1 = ['台湾','香港','广州','台湾']
s = set(lst1)
print(s)
# 结果:{'台湾', '香港', '广州'}

可以看到结果,再转换的时候,集合会自动将元素去重,这也是集合的特性:集合内的每个元素都是唯一的,不可重复!

除此之外,集合的元素只能是不可变数据类型,也就是可哈希类型,而比如列表、字典和集合本身则不可做为集合的元素!

集合的基本操作

集合不支持什么操作:

集合不支持:索引、切片、复制、拼接

s = set(range(10))
print(s)
# 结果:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
print(s[1])
# 报错结果:TypeError: 'set' object is not subscriptable
print(s[0:5])
# 报错结果:TypeError: 'set' object is not subscriptable

set1 = {'a','b'}
set2 = set1 * 2
print(set2)
# 报错结果:TypeError: unsupported operand type(s) for *: 'set' and 'int'

通过 in 和 not in 判断元素是否存在

s = set(range(10))
print(1 in s)
# 结果:True
print(2 not in s)
# 结果: False

通过for 循环取值

s = set(range(50,66))
for i in s:
    print(i)
# 结果:
''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值