python基础 日常总结——集合

集合

可以存放一堆数据相当于只有键没有值的字典 (键则是集合的数据)。

特点

  • 里面的元素不可变,不能存储list、dict。
  • 可以存字符串、数字、元组等不可变类型。
  • 自带去重,在集合中不会存储重复的元素。
  • 元素是无序的。

去重和关系运算(交并补)

  • 创建集合:{ },不是k-v结构
  • 集合名 = {key,....}
  • 集合名 = set(可迭代对象)
a={1,2,3,4,3,"_犬少",(1,2,5)}
b=[1,4,2,3,4,3,2,1,3]
c=set(b)
print(a)
print(c)

# {1, 2, 3, 4, '_犬少', (1, 2, 5)}
# {1, 2, 3, 4}

列表去重

a = [1,2,3,2,1,"dss","_犬少","dss"]
print(a)
b = set(a)
print(b)
a = list(b)
print(a)

# [1, 2, 3, 2, 1, 'dss', '_犬少', 'dss']
# {1, 2, 3, '_犬少', 'dss'}
# [1, 2, 3, '_犬少', 'dss']

增删改查操作

增加

  • 集合名.add(元素)
a={1,2,3,4,3,"_犬少",(1,2,5)}
a.add("波吉")
print(a)

# {1, 2, 3, 4, '_犬少', '波吉', (1, 2, 5)}

删除

  • del 集合 :删除集合。
a={1,2,3,4,3,"_犬少",(1,2,5)}
del a
print(a)

# NameError: name 'a' is not defined
  • 集合.pop() :随机删除一个值,并返回该值。
a={1,2,3,4,3,"_犬少",(1,2,5)}
a.pop()
print(a)

# {2, 3, 4, '_犬少', (1, 2, 5)}
  • 集合.remove(3)  :删除3这个元素若3不存在,报错。
a={1,2,3,4,3,"_犬少",(1,2,5)}
a.remove(3)
print(a)

# {1, 2, 4, '_犬少', (1, 2, 5)}

a.remove(7)
print(a)

# KeyError: 7
  • 集合.discard(3) :删除指定的值若该值不存在,不报错,返回None。
a={1,2,3,4,3,"_犬少",(1,2,5)}
a.discard(3)
print(a)

# {1, 2, 4, '_犬少', (1, 2, 5)}
a={1,2,3,4,3,"_犬少",(1,2,5)}
buf=a.discard("111")
print(a)
print(buf)

# {1, 2, 3, 4, '_犬少', (1, 2, 5)}
None
  • 集合.clear() :清空。
a={1,2,3,4,3,"_犬少",(1,2,5)}
a.clear()
print(a)

# set()

查找

a={1,2,3,4,3,"_犬少",(1,2,5)}
print(2 in a)
print("dss" in a)

# True
# False

集合一旦创建,不能修改里面的值。


关系语法

交集

【& / .intersection】: 返回共同元素。

a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
c=a&b
print(c)

# {2, 3, 4, 5}

并集

【| / .union】: 返回不重复元素。

a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
c=a|b
print(c)

# {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

差集(补集) 

【- / .difference】:返回只属于其中之一的元素。

a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
c=a-b
print(c)

# {1, 6, 7}

对称差集

【^ / .symmetric_difference】 :返回不相同的的元素。

a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
c=a^b
print(c)

# {0, 1, 6, 7, 8, 9}
# a ^ b <=> ( a - b | b - a )

★【.intersection_update、.union_update、.difference_update、.symmetric_difference_update都会将结果更新到原来的集合中。】


子集  <  issubset

判断一个集合的所有元素是否完全在另一个集合中。

超集  >  issuperset

判断一个集合是否具有另一个集合的所有元素。

a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
d={0,1,2,3,4,5,6,7,8,9}
print(a < b)
print(a>b)
print(a<d)

# False
# False
# True

相同  ==    不同  !=

判断集合中的所有元素是否和另一个集合相同。

a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
print(a==b)
print(a!=b)

# False
# True

【子集或相同 <=】【超集或相同 >=】


集合推导式

使用简易方法,将可迭代对象转换为集合

  • {表达式 for 变量 in 可迭代对象}
  • {表达式 for 变量 in 可迭代对象 if 条件}
set={i for i in range(0,10)}
print(set)

# {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

set1={j for j in range(0,10) if j >=6}
print(set1)

# {8, 9, 6, 7}

集合在基础阶段使用较少,在机器学习会经常使用。

【发现有误及时联系】【喜欢记得点赞收藏❤】【欢迎评论补充】


字符串、列表、元组、字典、集合的内容全部更完了,大家可以参考回顾:

【字符串系列1】:字符串基础知识

【字符串系列2】:字符串方法(一)

【字符串系列3】:字符串方法(二)

【列表系列1】:列表(一)

【列表系列2】:列表(二)

【元组】:元组

【字典系列1】:字典(一)

【字典系列2】:字典(二)


python基础暂时更到这里,下期更新函数。

_犬少加油!坚持就是胜利!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值