day7总结

字典(dict)

1.什么是字典?

容器型数据类型(序列)
特点:可变(支持增删改),无序的(不支持下表操作)

2.字典中的元素

元素都是键值对
字典储存数据主要是为了存值,键只是为了区分不同的值而存在的

键值对中的键 -- 不可变,唯一的。 --- 可用数字,字符串,字典。列表可变则不行
键值对中的值 -- 和列表元素一样,任何数据都可以作为值
备注:如果同一个键被赋值两次,后面的值会被记住

3.字典的增删查改

1)查

a. 获取单个元素的值
字典[key] -- 获取字典中指定key对应的值,如果key值不存在会报错
字典.get(key)
字典.get(key,默认值) -- 当key不存在则不会报错,返回None。如果设置了默认值就返回默认值

b.遍历
dog = {}
for i in dog:
print(i, dog[i]) -- 拿到键值

for value in dog.values():
print(i) -- 直接拿值

for key,value in dog.items():
print(key,value) --- 同时拿到键和值

备注:后面的这两个是比较浪费内存和cpu的,所以建议使用上面的

dict1 = {'a':10,'b':20,'c':30}
q = dict1((dict1[key], key)for key in dict1)
print(q)

2)增,改

增 -- 添加键值对;改 -- 修改字典中,某个key对应的值
语法:字典[key] = 值 -- 值不存在就向里面加值,当key存在就修改字典中key对应的值

3)删 -- 没有remove

a.del 字典[key] -- 删除指定key对应的值
b.字典.pop(key) -- 取出字典中key对应的值,返回取出后字典中的剩余值

4.字典的相关操作以及运算

1)字典不支持 +,*,>,<,>=,<=
2)相关操作:in 和 not in 和 max() sum() len()

key in 字典 -- 判断字典中是否存在某个键
key not in 字典 -- 判断字典中是否不存在某个键

只针对key的操作:
max() -- 比较字典中的键的大小(Ascll字符比较)
sum() -- 只针对键是数字的字典
len() -- 计算键的总数
list() -- 转换成列表,只是把key转换成字典

3)dict(数据) -- 将指定数据转换成字典
             数据要求:a.数据本身是一个序列  b. 系列中的元素必须是有且只有两个元素的小序列。

print(dict([[1,2],(2,3),'ab'])) -- 备注:里面就是一个列表对象再包含3个对象

4)dict.fromkeys(序列,default = None) -- 创一个新的字典,将序列中的元素作为字典的key,将default作为每个key对应的值

new_dict = dict.fromkeys('abc')
print(new_dict) --- {a:None,b:None,c:None}

5)字典.items() -- 将字典中的键值对转换成元组作为容器中的元素

备注:与dict(数据) -- 相反

6)字典.update(列表,元组,字典等) --- 即添加序列

集合(set)

集合是容器型数据类型(序列),将{ }作为容器的标志,多个元素用逗号隔开
特点:可变(增删),无序(不支持下标操作)-- 元素不可变,集合可以变
{ } -- 表示空字典
{1,3,100}

1)元素 - 不可变的数据;同一个元素只能有一个(唯一性)

集合自带去重功能:
set1 = {1,2,3,1,2}
print(set1) -- {1,2,3}

scores = {12,23,45,23,45,67}
scores = list(set(scores))
print(scores)

2)集合元素的增删改查

a. 查 - 查只支持遍历,不能单独获取具体某一个元素(本质是通过下标来遍历,内部进行)
注意:遍历后的数据顺序可能会不一样

b. 增:
集合.add(元素) -- 在集合中添加一个元素
集合.update(序列) -- 将序列中所有的元素添加到集合里面
列表 元组,字典,字符串等。。。

c.改(集合不支持改的操作)

3)集合的相关操作:

a. 求并集:集合1 | 集合2 -- 将两个集合合并,并去重
b. 求交集:集合1 & 集合2 -- 获取两个集合的公共元素
c. 求差集:集合1 - 集合2 -- 获取集合1中除了集合2中与集合1内相同的元素,剩下的部分
d. 对称差集:集合1 ^ 集合2 -- 两个集合除了公共部分剩下的部分
e. 集合1 > 集合2 -- 判断集合1是否包含集合2
f. 集合1 < 集合2 -- 判断集合2 是否包含集合1

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

推荐阅读更多精彩内容