python3_数据结构(列表,元组,字典,集合,)

4.集合(set)

    python当中的集合是一个“无序非重复”元素的集合。其基本的功能是“关系测试(I / - / & / ^)”和“消除重复元素”,列表去重非常方便。

    需要注意的是:①创建空集合: set()    ②创建非空集合:{元素1, 元素2,元素2, ... , 元素n}  ③不记录元素位置和插入点

# coding:utf-8
# python Interpreter: 3.6.5
# author: admain_maxin

# 1.引用非空集合
basket = {"apple", "orange", "pear", "orange", "banana"}
print(type(basket))
print(basket)

print("orange" in basket)
print("crabgrass" in basket)
print("*" * 100)

# 2.创建集合
# function: add()\ clear()\ copy()\ difference()\ difference_update()\ discard()
#           intersection()\ intersection_update()\ isdisjoint()\ issubset()
#           issuperset()\ pop()\ remove()\ symmetric_difference()\ symmetric_difference_update()
#           union()\ update()
a = set()
b = set([1, 2, 3, 3, 4, 1])
c = set("123341")
d = [1, 3, 3, 1, 2, 2]
d = set(d)
print(type(a))
print(a)
print(type(b))
print(b)
print(type(c))
print(c)
print("*" * 100)
print(type(d))
print(type(list(d)))
print(d)
print("*" * 100)

# 3.集合的关系运算
print(b - d)
print(b | d)
print(b & d)
print(b ^ d)
print(d.add(5), d)
print(d.add("5"), d)
# print(d.clear(), d)
e = d.copy()
print(e)
e = d.difference(b)          # 超找d中未在b中出现的元素
print(e)
d.difference_update(b)       # 删除d中 在b中出现过的元素
print(d)
print(b, d)
b.discard(1)                 # 删除d中指定的元素(元素可以不存在)
b.discard(5)
print(b)
print(b.pop())
print(b)
b.remove(3)
print(b)
f = {1, 2, 3, 4, 4, 3}  # 1,2,3,4
g = {6, 2, 6, 8, 4, 4}  # 2,4,6,8
h = {1, 4, 3, 4, 4, 6}
i = {1, 2}
j = {1, 4}
print("*" * 100)
print(i.symmetric_difference(j))  # 返回f和g中不重复的元素
print(i.isdisjoint(j))            # 判断i和j的交集是否为空

# 对称差集
print(i.symmetric_difference_update(j))  # 通过两个集合的非重复元素更新i
print(list_1 ^ list_2)

print(f.union(g))                 # 将两个集合的元素进行合并
print(i.update(j))                # 返回增加了j中元素的i
print(i)

# 4.返回两个几集合的交集
list_1 = set([2, 4, 6, 9])
lsit_2 = set([2, 3, 5, 9])
print(lsit_1.intersection(list_2))

# 5.返回两个集合的并集
print(list_1.difference(list_2))

# 6.判断list_2是否是list_1的子集/父集
print(list_1.issubset(list_2))
print(list_1.isuperset(list_2))

# 7.判断两个集合是否有交集
print(list_1.isdisjoint(list_2))

猜你喜欢

转载自blog.csdn.net/admin_maxin/article/details/80622776
今日推荐