集合

# -*- 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():删除+提取
# 集合名.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})
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,976评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,249评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,449评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,433评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,460评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,132评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,721评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,641评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,180评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,267评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,408评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,076评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,767评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,255评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,386评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,764评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,413评论 2 358

推荐阅读更多精彩内容