数据容器之集合(笔记)

集合的特点

不支持重复元素(去重)

而且顺序不能保证(乱序,无下标索引)

允许被修改

小总结

列表[ ]

元祖()

字符串" "

集合 { }

语法

# 语法
{"sasa", "kaka", "papa", "enen"}  # 字面量
set_1 = {"sasa", "kaka", "papa", "enen"}  # 用变量接收
set_empty = set()  # 空集合

常用操作

因为集合是乱序的,所以下标索引不能使用。

添加

集合名称.add( 加入的元素)

a = {"aa", "jd", "kk", "od", "rd", "aa"}
print(a.add("黑的"))
print(a)

'''输出
    None
    {'黑的', 'rd', 'aa', 'od', 'kk', 'jd'} '''

add函数没有返回值,只会给集合添加元素,所以直接print(a.add("黑的")),会输出None。

移除

集合名称.remove( 移除的元素)

a = {"aa", "jd", "kk", "od", "rd", "aa"}
print(a.remove("kk"))
print(a)
'''输出
    None
    {'aa', 'rd', 'jd', 'od'}
 '''

同样没有返回值

a = {"aa", "jd", "kk", "od", "rd", "aa"}
print(a.pop())
print(a)
'''输出
    jd
    {'kk', 'rd', 'aa', 'od'}
'''

pop的删去,在列表中可以输入下标索引来指定移除,但是集合没有下标索引的功能,所以集合会随机移除一个元素,不用填写下标。

list_1 = ["dji", "do", "oas", "mdasl"]  # 列表
list_1.pop(0)
print(list_1)
set_1 = {"dji", "do", "oas", "mdasl"}  # 集合
print(set_1.pop())
print(set_1)
'''输出
    ['do', 'oas', 'mdasl']
    oas
    {'dji', 'mdasl', 'do'}
'''

清空

集合名称.clear()

修改

差集和交集

取两个集合的差集:集合1.difference(集合2),得到集合1有集合2没有的元素的集合

取交集:集合1&集合2,得到两个集合都有的元素

这些操作不会影响他们原本的集合,而是得到了新的集合

set_1 = {"dji", "do", "oas", "mdasl"}
set_2 = {"dji", "ad", "aa", "s", "oas"}
print(set_1 & set_2)  # 交集
print(set_1.difference(set_2))  #差集,返回差集

'''输出
    {'oas', 'dji'}
    {'mdasl', 'do'}
'''

消除差集

集合1.difference_update(集合2),消除了集合1里与集合2相同的元素,改变了集合1,没有改变集合2

set_3 = {1, 2, 3, 4, 5}
set_4 = {1, 9, 40, 6, 2}
set_3.difference_update(set_4)
print(set_3)
print(set_4)

'''输出
    {3, 4, 5}  set_3
    {1, 2, 6, 40, 9}  set_4
'''

合并集合

集合1.union(集合2)

集合1和集合2不变,返回一个新集合,包括集合1、2的所有元素(去重)

set_3 = {1, 2, 3, 4, 5}
set_4 = {1, 9, 40, 6, 2}
print(set_3.union(set_4))  # 可以设一个变量接收返回的集合
'''输出
    {1, 2, 3, 4, 5, 6, 40, 9}
'''

统计集合元素个数

len(集合)

set_3 = {1, 2, 3, 4, 5}
print(set_num)
'''输出
    5
'''

遍历

集合没有下标索引,不能用while,for可以

set_3 = {1, 2, 3, 4, 5}
for x in set_3:
    print(x)
'''输出
    1
    2
    3
    4
    5
'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值