码迷,mamicode.com
首页 > 编程语言 > 详细

python-集合

时间:2019-12-29 20:44:08      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:ack   list   only   pop   int   date   元素   nic   去重   

集合(set)跟我们学的列表有点像,也是可以存一堆数据,不过它有几个独特的特点,令其在整个Python语言中占有一席之地

  • 里面的元素不可变,代表你不能存一个list、dict 在集合里,字符串、数字、元组等不可变类型可以存

  • 天生去重,在集合里没办法存重复的元素

  • 无序,不像列表一样通过索引来标记在列表中的位置 ,元素是无序的,集合中的元素没有先后之分,如集合{3,4,5}和{3,5,4}算作同一个集合

基于上面的特性,我们可以用集合来干2件事,去重&关系运算

s1 = {1,2,3}
s2 = {3,1,2}
print(s1 == s2) # True

增删改查

  • 元素不能改

  • 增加一个新元素 s.add(self,element)

s = {2,5,8,"any", "joy"}
s.add("hello")          # s = {2, 5, 8, 'joy', 'any', 'hello'}
  • 合并集合 s.update(s2)
s = {2,5,8,"any", "joy"}
s2 = {2,3,5,8}
s.update(s2)        # s= {'joy', 'any', 2, 3, 5, 8}
  • 删除元素 s.discard(self.element)
s = {2,5,8,"any", "joy"}
s.discard("joy")
s.discard("joy")        # 元素不存在是也不会报错,此时不做任何操作
  • 删除元素,元素不存在则报错
s = {2,5,8,"any", "joy"}
s.remove(5)
s.remove(6)     # 报错
  • 随机删除 s.pop()
s = {2,5,8,"any", "joy"}
print(s.pop())      # 随机删除一个元素并返回该元素
  • 清空集合
s = {2,5,8,"any", "joy"}
s.clear()
  • 判断元素是否在集合中
s = {2,5,8,"any", "joy"}
print(5 in s)       # True

去重

  • 重复的元素在集合中存不进去
s = {2,4,3,1,"jack", 3,5}
print(s)        # s = {1, 2, 3, 4, 5, 'jack'}
  • 帮列表去重(就是把列表转成集合,去重完,再转回列表)
li = [1,2,3,4,5,3,4,2]
li2 = list(set(li))         # li2 = [1, 2, 3, 4, 5]

关系运算

s_1 = {"佩奇","老男孩","海峰","马JJ","老村长","黑姑娘","Alex"}
s_2 = {"Alex","Egon","Rain","马JJ","Nick","Jack"}
print(s_1 & s_2)  # 交集, elements in both set
print(s_1 | s_2)  # 并集 or 合集
print(s_1 - s_2)  # 差集 , only in s_1
print(s_2 - s_1)  # 差集,  only in s_2
print(s_1 ^ s_2)  # 对称差集, 把脚踩2只船的人T出去

python-集合

标签:ack   list   only   pop   int   date   元素   nic   去重   

原文地址:https://www.cnblogs.com/liuxu2019/p/12116119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!