Python从零开始 day8

集合set

# 集合 set  无序不重复
# s=set('fishy')
# print(s)

# s = set('evaver')
# print(s) # {'e', 'v', 'r', 'a'} # 存在相同的只会存在一个 去重

# a = [1,2,5,8,1,6,2,4,7,8]
# print(set(a)) # {1, 2, 4, 5, 6, 7, 8} 去重

# set为不可哈希的数据类型 无序的 不重复的
# 不可变数据类型(int str bool tuple)---->可哈希的
# 可变类型:list dict set ------>不可哈希的
# set为可变集合 本身是非可哈希的 可添加和删除元素 不能作为dict的键
# frozenset不可变集合 不能添加和删除元素 类似于list和tuple

# 由于集合本身是无序的,所以不能为集合创建索引或切片操作,
# 只能循环遍历(for)或使用in、not in来访问或判断集合元素。
# a = [1,2,5,8,1,6,2,4,7,8]
# for i in a:
# print(i,a[i]) 返回值如下
# 1 2
# 2 5
# 5 6
# 8 7
# 1 2
# 6 2
# 2 5
# 4 1
# 7 4
# 8 7

# s1 = set('alvin')
# print('a' in s1) # True
# print('b' in s1) # False
#
# for i in s1:
# print(i) # 无序的将s1中的元素输出

# 更新集合 只有可变集合才能更新
# li = ['fishy',12,18]
# s = set(li)
# print(s) # {18, 12, 'fishy'}

# s.add('yubang') # 添加一个元素,可为一个int str ,也可是一串数字或字符串
# print(s) # {'fishy', 18, 12, 'yubang'}

# s.update('YU') # 添加多个元素
# print(s) # {'Y', 'U', 'fishy', 12, 18}

# s.remove(12) # 删除元素
# print(s) # {18, 'fishy'}

# s.pop() # 随机删除
# print(s)

# s.clear() # 清空
# print(s) # set()空集合

# del s # 删除集合本身

# 集合类型操作符
# 1 in ,not in
# 2 集合等价与不等价(==, !=)
# 3 子集、超集

# print(set('abc') == set('abc')) # True
# print(set('ab') == set('abba')) # True 需要含有相同的元素才会返回True
# print(set('ab') == set('abcdh')) # False
# print(set('ab') < set('abc')) # True
# print(set('ab') < set('ab')) # False

# 联合 | and 并集
# print(set('abc') | set('bcd')) # {'d', 'b', 'c', 'a'} 并集

# 交集 & or
# print(set('abc') & set('bcd')) # {'c', 'b'} 交集

# 差集 - ^ difference
# print(set('abc') - set('bcd')) # {'a'}
# print(set('bcd') - set('abc')) # {'d'}
# print(set('abc') .symmetric_difference(set('bcd'))) # {'d', 'a'} 对称差集或者反向交集
# print(set('abc') ^ set('bcd')) # {'a', 'd'} 对称差集或者反向交集

# 父集 超级 子集
# print(set('abc').issuperset(set('bcd'))) # abc完全包含bcd? False
# print(set('abc') > (set('bcd'))) # abc完全包含bcd? False

# print(set('abc').issubset(set('bcd'))) # 子集 False
# print(set('abc') < (set('bcd'))) # 子集 False


''' 最简单的去重方式 '''
lis = [1,2,3,4,1,2,3,4]
print(list(set(lis))) # [1, 2, 3, 4]

猜你喜欢

转载自www.cnblogs.com/yubang178/p/10269478.html