# -*- coding: utf-8 -*-
# @Time : 2019/11/7 16:37
# @Author : John
# @Email : 2398344557@qq.com
# @File : 集合.py
# @Software: PyCharm
- 集合无序不重复
- 只能包含不可变数据(数字、字符串、元组)
a = {}
print(type(a))
# —— <class 'dict'>
b = {3, 6, 9}
print(type(b))
# —— <class 'set'>
print(b)
# —— {9, 3, 6}
# 集合名.add()
b = {3, 6, 9}
b.add('8')
print(b) # 每次输出的值都不同
# —— {9, 3, '8', 6}
# —— {'8', 9, 3, 6}
c = set(range(10))
print(c)
# —— {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
d = set([i for i in range(25)])
print(d)
# —— {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24}
# del 集合名 直接删没,不留痕迹
c = set(range(10))
del c
print(c)
# —— NameError: name 'c' is not defined
# 集合名.pop()
f = {3, 5, 4}
x = f.pop()
print(x) # 弹出第一个
# —— 3
print(f) # 剩下的
# —— {4, 5}
# 集合名.remove()
f = {3, 5, 4}
f.remove(5)
print(f)
# —— {3, 4}
# 集合名.update()方法
e = {1, 2, 3}
e.update({5, 7, 4})
print(e)
# —— {1, 2, 3, 4, 5, 7}
f = {3, 5, 4}
f.clear()
print(f)
# —— set() # 并非为{},因为{}代表字典
from random import choice # 随机选取序列中的一个元素
# print(choice(['1', 'b', 'c']))
# print(choice('xuebi'))
random_list = [choice(range(200)) for _ in range(50)]
print('从1到200范围内生成50个随机数:', random_list)
# —— 从1到200范围内生成50个随机数: [31, 91, 106, 107, 190, 25, 162, 65, 144, 25, 179, 32, 177, 6, 31, 38, 40, 92, 28, 42, 175, 127, 10, 22, 194, 88, 78, 141, 26, 100, 104, 82, 198, 68, 67, 56, 76, 1, 180, 81, 120, 68, 184, 103, 67, 112, 183, 188, 157, 149]
print('输出随机数的长度:', len(random_list))
# —— 输出随机数的长度: 50
# 生成一个no repeat的集合
noRepeat = []
for x in random_list:
if x not in noRepeat:
noRepeat.append(x)
noRepeat = set(noRepeat)
print('在生成的{}数中,一共有{}个不重复的数'.format(len(random_list), len(noRepeat)))
# —— 在生成的50数中,一共有46个不重复的数
print('输出这{}不重复的数:{}'.format(len(noRepeat), noRepeat))
# —— 输出这46不重复的数:{1, 6, 10, 141, 144, 149, 22, 25, 26, 28, 157, 31, 32, 162, 38, 40, 42, 175, 177, 179, 180, 183, 56, 184, 188, 190, 65, 194, 67, 68, 198, 76, 78, 81, 82, 88, 91, 92, 100, 103, 104, 106, 107, 112, 120, 127}
# 将列表转化为集合,并且每个元素前后端进行去空格
s = [' aaa', ' is ', ' xuebi ']
print({x.strip() for x in s})