Day8—总结 元祖字典集合

元祖tuple

1、什么是元祖 tuple = (1,1,1,1,1)

元祖是python提供的容器型数据类型(序列) 不可变有序
元祖就是不可变的列表
特点:不可变
一般保存一些不让修改的数据

2、元素

tuple1 = ()
print(tuple1, type(tuple1))

2.1 元素个数是1的元祖 必须在元素后加逗号

tuple2 = (10,)     # 必须在元素后加逗号
print(tuple2, type(tuple2))

2.2 元祖数据中小括号可以省略。多个数据直接用逗号隔开,表示的是一个元

tuple3 = 1, 1, 1, 1
print(tuple3, type(tuple3))

3、获取元素 获取元素和列表一样

tuple2 = ('周一', '周二', '周三')
print(tuple2[1:])

3.1 让变量的个数与元祖中元素的个数保持一致,来一一获取元祖中每个元素的值

point = (100, 50)
x, y = point
print(x, y)

3.2 让多个变量同时获取元祖中的元素的时候,可以在一个变量前加星号,将这个变量变成一个列表,来获取不带星号的变量获取后剩下的数据
注意:带星号的变量只能有一个

student = '小明', 18, 1, 2, 3, 6
name, age, *scores, r = student
print(name, age, r, scores)


字典dict

1、什么是字典 dict

字典是python提供的容器型数据类型(序列)。可变,无序

2、字典中的元素 字典的元素是键值对

{key1: 值1, key2: 值2, key3: 值3, ······}
键值对:以 键:值 的形式成对出现,

  • 键(key) —— 要求 不可变 并且 唯一。 (建议用字符串作为key,用来对值进行说明和区分)
  • 值(value) —— 任何数据类型都可以作为值
dict1 = {10: 1, 'name': 100, (1, 2): 100}

3、元素的操作

3.1 查 —— 获取值

  • 字典[key] - 获取字典中key对应的value。 如果key不存在会报错!
  • 字典.get(key) - 获取字典中key对应的value。如果key不存在不报错,结果是None
    字典.get(key, 默认值) 如果key不存在,输出默认值
dict1 = {10: 1, 'name': 100, (1, 2): 100}
print(dict1[10])
print(dict1.get(10))
print(dict1.get(2, 2))

遍历
直接通过for循环遍历字典的时候,获取到的是所有的key

# 直接遍历
dict1 = {10: 1, 'name': 100, (1, 2): 100}
for key in dict1:
    print(key, dict1[key])

3.2 增 改
字典[key] = value
如果key存在,就修改字典key对应的值;如果key不存在,就添加键值对

dict1 = {10: 1, 'name': 100, (1, 2): 100}
dict1['name'] = 'K'
print(dict1)
dict1 = {10: 1, 'name': 100, (1, 2): 100}
dict1['num'] = 110
print(dict1)

3.3 删

  • del 字典[key] —— 删除字典中指定key对应的键值对,若key不存在会报错
  • 字典.pop(key) —— 取出字典中key对应的值,若key不存在会报错
dict1 = {10: 1, 'name': 100, (1, 2): 100}

del dict1[10]
print(dict1)
s = dict1.pop((1, 2))
print(dict1, s)

4、字典相关操作

运算符不支持数学运算
比较运算符只支持比较相等 不支持比较大小

in / not in
key in 字典 - 判断字典中是否存在指定的key

print('name' in dict1)

len

len(dict1)

dict
能转换成字典的数据要求:
数据本身是序列,序列中的每个元素是长度为2的序列,并且元素内序列中第一个元素不可变

data = [('1', 1), [1, 1]]
print(dict(data))
print(list(dict1))

5、相关方法

clear
字典.clear() - 清空字典

copy
字典.copy() - 拷贝字典中的键值对产生一个新的字典

fromkeys
dict.fromkeys(序列, 值) - 创建一个新的字典,字典的key是序列的元素,key对应的value是值

new_dict = dict.fromkeys('yuo', 100)   
# key是字符串y u o元素 值都是100

keys, values, items
字典.keys() - 获取字典中所有的key,结果是一个序列
字典.values() - 获取字典中所有的value,结果是一个序列
字典.tieams() - 获取字典中的key和value,key和value以元祖返回

setdefault
字典.setdefault(key, value) - 添加键值对(不能修改

update
字典1.update(字典2) - 使用字典2中的键值对去更新字典1,不存在添加,存在就修改



集合set

1、什么是集合 set

容器型数据类型 (序列) 可变 ,无序

2、集合中的元素

{元素1, 2, 3, ···}
元素:不可变的数据 并且唯一(自带去重)

  • 空的集合 —— {}表示的是空字典
set0 = set()   # 空的集合
set1 = {1, 'asd', (1, 2), False}
print(set1)
  • 集合去重
str1 = 'shfkjsahdjdsafhjdfk'
print(''.join(set(str1)))

list1 = [1, 1, 2, 2]
print(list(set(list1)))

3、元素相关操作

3.1 查
集合不能单独获取指定的某一个元素
只支持遍历

3.2 增

  • 集合.add(元素) - 集合添加一个元素
  • 集合.update(序列) - 将序列中的元素添加到集合中(自带去重)
set1.add(45)
print(set1)

3.3 删

集合.remove(元素) - 删除集合中指定的元素
元素不存在会报错

set1.remove(1)
print(set1)

4、数学集合运算

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

推荐阅读更多精彩内容