python的入门10

集合

集合为Python基本数据之一,它是无序的(排列顺序无序)、无索引的(不能通过下标索引)、不重复的(元素不重复);集合里面的元素必须是可hash的(int,str,tuple,bool)。可以与字典一起记忆,set就是dict类型的数据但是不保存value,只保存key,set也用{}表示。

集合不支持的功能:作为一种无序的多项集,集合并不记录元素位置或插入顺序。 相应地,集合不支持索引、切片或其他序列类的操作。

集合支持的功能:包括成员检测、从序列中去除重复项以及数学中的集合类计算,例如交集、并集、差集与对称差集等等。

1、创建集合

在这里插入图片描述
输出结果为:
在这里插入图片描述
当创建一个空括号,他的数据类型为字典,但是在括号里添加一堆没有映射关系的数字,则就为set集合类型。

2.集合的特点

集合特点:1、不同元素组成(不重复) 2、无序 3、集合中的元素必须是不可变类型在这里插入图片描述
输出结果为:

{‘飞扬’, ‘张楠’, ‘贾爷’}

1.使用花括号内以逗号分隔元素的方式

在这里插入图片描述
输出结果为:

{‘张楠’, ‘飞扬’, ‘贾爷’}

2.使用集合推导式,类似列表推导式

在这里插入图片描述
输出结果为:

{‘d’, ‘r’, ‘c’, ‘a’, ‘b’}

具体来说,c for c in ‘abracadabra’ 是一个表达式,它遍历字符串 ‘abracadabra’ 中的每个字符,并将每个字符作为集合中的一个元素。这个表达式可以被解读为:对于字符串 ‘abracadabra’ 中的每个字符 c,将 c 添加到集合中。

在集合推导式中,你可以使用任意的迭代变量名,这里使用了两个相同的变量名 c,第一个 c 代表每个字符,而第二个 c 是将字符添加到集合中的语法。

3.使用类型构造器:set(基本数据类型)

分别将字符串、列表、元组、字典(只针对key键)转为集合

set1 = set(‘abcdecc’) # {‘b’, ‘d’, ‘e’, ‘a’, ‘c’}
set2 = set([1,2,3,4,5]) # {1, 2, 3, 4, 5}
set3 = set((‘a’,‘b’,‘c’)) # {‘c’, ‘a’, ‘b’}
set4 = set({‘a’:1,‘b’:2}) # {‘a’, ‘b’} value值舍弃

:列表之所以会表现出来有序是因为set([1,2,3,4,5]) 表达式使用 set() 函数将列表 [1,2,3,4,5] 转换为一个集合。该列表中的每个元素都是独特的,因此在转换过程中不会发生重复。
如果你需要一个有序的集合,可以使用有序集合类型 list 或 tuple,它们会保留元素的插入顺序。

2.添加

了解集合的添加操作前,先了解列表的添加元素:在这里插入图片描述
输出结果为:

[1, 2, 3, 4, 5, 6]
列表是有序的

1.add()方法

set = {1,2,3,4}
set.add(6)
print(set)
输出结果为:{1,2,3,4,6}#这个输出结果不会发生改变

2.update()方法

s = {1,2,3,4,5}
s.update([7,8])
print(s)
输出结果为:{1,2,3,4,5,7,8}#这个输出结果也不会发生改变

3.删除

删除各个函数的特点:

s.remove(x) 删除元素,不存在会报错
s.discard(x) 删除元素,不存在不会报错
n = s.pop() 随机删除一个元素,并返回删除的元素值
s.clear() 清空集合的所有元素
del s 删除整个集合,注意集合是不能索引下标的

1.remove(x):删除元素

在这里插入图片描述
输出结果为:

{‘飞扬’, ‘贾爷’, ‘小栋’}#和增加不一样,删除之后的集合还是无序的

2.discard(x):删除元素

在这里插入图片描述
输出结果为:

{‘小栋’, ‘高权’, ‘贾爷’, ‘飞扬’}
{‘小栋’, ‘高权’, ‘贾爷’, ‘飞扬’}
{1, 2, 3, 5, 6, 7}#删除之后的集合还是无序的
{1, 2, 3, 5, 6, 7}#删除之后的集合还是无序的

3.pop():随机删除一个元素

随机删除一个元素,并返回删除的元素。集合为无序的,即顺序无序,时刻都可能在变化,故pop()方法删除的元素是随机的。

s = {1,2,3,4,5,6,7}
pop_num = s.pop()
print(pop_num) # 1

4.clear():清空集合

s = {1,2,3,4,5,6,7}
s.clear()
print(s)

输出结果就为:

set()

5.del set

s = {1,2,3,4,5,6,7}
del s
# print(s) 报错,集合已经删除
# del s[0] 报错,集合不支持索引

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值