【Python基础】set(集合)

admin 2024年1月10日22:56:04评论22 views字数 1504阅读5分0秒阅读模式

简介

集合跟我们学的列表有点像,也是可以存放一堆数据,不过集合有几个独特的特点,令其在整个Python语言中占有一席之地。
相当于只有键没有值的字典(键则是集合的数据)。

基本操作

特点

* 里面的元素不可变,代表不能存储一个list、dict、在集合中,字符串、数字、元组等不可变类型可以存。
* 天生自带去重,在集合中没有办法存储重复的元素。
* 无序、不像列表一样通过索引来标记在列表中的位置,元素是无序的,集合的元素无先后之分,如集合{2,3,4}和{3,2,4}算作相同集合。

作用

我们用集合主要做两件事: 去重和关系运算
【Python基础】set(集合)

基本语法

创建集合

注意也是{ },但不是dict,不是k-v结构
集合名 = {key,....}
集合名 = set()
集合名 = set(可迭代对象)
由于集合是天生去重,重复的值你根本存不进去

msg ={"小C学安全","Python","Java"}
msg1 = set("小C学安全")
msg2 = set(["小C学安全","Python","Java"])
print(msg,msg1,msg2)

【Python基础】set(集合)

msg ={"小C学安全","Python","Java","Python"}
print(msg)

{'Python', '小C学安全', 'Java'}

列表去重

a = [1,2,3,2,1,"Python","小C学安全","Python"]
print(a)
print(set(a))
print(list(set(a)))

【Python基础】set(集合)

增删改查

增:
集合名.add(元素)

msg={1, 2, '小C学安全', 3, 'Python'}
msg.add("哈哈哈哈")
print(msg)

删除:

  集合.pop() # 随机删除一个值,并返回该值
集合.remove(3) # 删除3这个元素,若3不存在,报错
集合.discard(3) # 删除指定的值,若该值不存在,不报错 None
集合.clear() # 清空
msg={1, 2, '小C学安全', 3, 'Python'}
msg.pop()
print(msg)
#{2, 3, 'Python', '小C学安全'}
msg.remove(2)
print(msg)
#{1, 3, '小C学安全', 'Python'}
msg.discard(2)
print(msg)
#{1, 3, '小C学安全', 'Python'}
msg.clear()
print(msg)
#{}

查:

msg={1, 2, '小C学安全', 3, 'Python'}
print("小C学安全" in msg)
#结果为True

关系语法

交集 :( &;intersection) 返回共同元素

1 s1 = {1, 2, 3}
2 s2 = {2, 3, 4}
3 s3 = s1 & s2 # {2, 3}

并集: ( |;union ) 返回不重复元素

1 s1 = {1, 2, 3}
2 s2 = {2, 3, 4}
3 s3 = s1 | s2 # {1, 2, 3, 4

差集(补集):(-;difference)返回只属于其中之一的元素

1 s1 = {1, 2, 3}
2 s2 = {2, 3, 4}
3 s1 - s2 # {1} 属于s1但不属于s2

对称差集:(^ ;symmetric_difference )返回不相同的的元素

1 s1 = {1, 2, 3}
2 s2 = {2, 3, 4}
3 s3 = s1 ^ s2 # {1, 4} 等同于(s1-s2 | s2-s1)

子集<:判断一个集合的所有元素是否完全在另一个集合中 # issubset

超集>:判断一个集合是否具有另一个集合的所有元素 # issuperset

集合推导式

msg={1, 2, 66, 3, 88}
print({i+1 for i in msg})
print({i+1 for i in msg if i==66})

{2, 67, 3, 4, 89}
{67}

关注公共号

【Python基础】set(集合)

原文始发于微信公众号(小C学安全):【Python基础】set(集合)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月10日22:56:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【Python基础】set(集合)http://cn-sec.com/archives/2382729.html

发表评论

匿名网友 填写信息