首页 » 编程 » Python基础 » 正文

集合

Python学习日记-day17


集合用 { } 表示,{}中有value是字典,没有value就是集合。

    集合是无序的;

    集合(set)是可变数据类型。

    集合内元素一定是不可变数据类型。

        s3={1,2,[3,4]}  会报错


集合主要作用:

1. 关系测试(如求两个列表里相同的元素)

    交集:两个都有

    差集:在列表a里有的,b里没有

        对称差集:互相不在的

    并集:把两个列表里的元素合并在一起,去重


2. 去重,天然去重


例子:找出两个集合中相同的

没用集合的时候:

python = ["alex", "jim", "Jessie", "Jack", "Aow"]
linux = ["Jack", "laowang", "jim", "naicha"]
python_and_linux = []
for i in python:
    if i in linux:
    python_and_linux.append(i)
    print(python_and_linux)

用集合的时候:

稍加改造:

python = {"alex", "jim", "Jessie", "Jack", "Aow", "jim"}
linux = {"Jack", "laowang", "jim", "naicha"}
print(python.intersection(linux))  # 交集,打印两个集合相同的,自动去除集合里重复的
print(python & linux)  # 交集,打印两个集合相同的,和上面一样


print(python.difference(linux))  # 差集,打印python列表中与linux不一样的
print(linux.difference(python))  # 差集,打印linux列表中与python不一样的
print(linux - python)  # 差集

print(linux.symmetric_difference(python))   #对称差集

print(python.union(linux))  # 联合,并集
print(python | linux)  # 联合,并集

print(python.symmetric_difference(linux))  # 对称差集,互相不在的都打印
print(python ^ linux)  # 对称差集,互相不在的都打印

linux.update(python)  # 合并集合,把python合并到linux集合中
print(linux)

linux.add("zhangsan")  # 增加,如果再增加一个alex,增加不了,因为自动去重

linux.difference_update(python)  # 求差集并赋值,把linux和python里不一样的打印出来并存到linux里

linux.discard("alex")  # 删除alex,元素不存在不报错
linux.remove("alex")  # 删除alex,元素不存在会报错
linux.pop()  # 随机删除

print(linux.issubset(python))  # 子集,判断linux是不是python的子集

print(linux.issubset(python))  # 超集,父集

print(linux.isdisjoint(python))  # 如果两个集合没有交集返回True



发表评论

验证码加载中....