我是靠谱客的博主 魁梧花卷,这篇文章主要介绍字典、字典推导式、双for循环,现在分享给大家,希望可以做个参考。

. 字典:定位、删除

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 表达一个人的信息 # 如果使用列表,通过索引定位元素,代码可读性差. # 列表擅长存储单一维度信息,例如:姓名列表 # list_person = ["李乾川" , 26 , "男"] # print(list_person[0]) # 姓名 # print(list_person[2]) # 性别 # 字典擅长存储多个维度信息,例如:姓名列表 dict_person = { "name": "李乾川", "age": 26, "sex": "男" } # 添加数据:字典名[键] = 值 if "money" not in dict_person: dict_person["money"] = 10000000 # 定位: # -- 读取:变量 = 字典名[键] print(dict_person["name"]) print(dict_person["sex"]) # -- 修改: 字典名[键] = 值 dict_person["age"] = 23 if "money" in dict_person: dict_person["money"] = 50000000 # 删除: del dict_person["age"]

. 字典遍历

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
dict_person = { "name": "李乾川", "age": 26, "sex": "男" } # 语法1: 获取所有键 # for 键 in 字典名: for key in dict_person: print(key) # 语法2: 获取所有值 # for 键 in 字典名.values(): for value in dict_person.values(): print(value) # 语法3: 获取所有键和值 # for 变量 in 字典名.items(): # for item in dict_person.items(): # print(item[0]) # print(item[1]) # for 键,值 in 字典名.items(): for key,value in dict_person.items(): print(key) print(value) # 需求1:根据值查找键 for key,value in dict_person.items(): if value == "李乾川": print(key) # 需求2:将字典所有键存入列表 list_key = list(dict_person) print(list_key) # 需求3:将字典所有值存入列表 list_value = list(dict_person.values()) print(list_value) # 需求4:将字典所有键和值存入列表 list_item = list(dict_person.items()) print(list_item)

. 字典推导式

字典名={键:值 for 变量 in 可迭代对象 if 条件}

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 列表推导式 # 需求:1~10之间数字平方存入列表 list_result = [] for number in range(1, 11): list_result.append(number ** 2) list_result = [number ** 2 for number in range(1, 11)] print(list_result) # 需求:1~10之间数字(key)和数字平方(value)存入字典 # dict_result = {} # for number in range(1,11): # dict_result[ number ] = number ** 2 dict_result = {number: number ** 2 for number in range(1, 11)} print(dict_result) # 需求:1~10之间数字(key)和数字平方(value)存入字典 # 条件:key是偶数 dict_result = { number: number ** 2 for number in range(1, 11) if number % 2 ==0 } print(dict_result)

. 集合 set–基础操作:

​ 创建、添加、遍历、删除

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 1. 创建 # {k:v,k:v} # {k,k} # 语法1: set_name = {"李乾川", "刘航瑀", "魏彪", "刘航瑀"} print(set_name) # 语法2:集合名 = set(可迭代对象) set02 = set(["李乾川", "刘航瑀", "魏彪", "刘航瑀"]) print(set02) # 2. 添加 set_name.add("苗芳") set_name.add("苗芳") # 重复元素也只有一个 set_name.add("魏彪") print(set_name) # 3. 遍历 for item in set_name: print(item) # 4. 删除 set_name.remove("魏彪") # 如果不存在,报错 set_name.discard("苗芳1")# 如果不存在,也报错 print(set_name)

. 集合:数学运算(交并补)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
set01 = {10, 20, 30} set02 = {20, 30, 40} # 交集 print(set01 & set02) # {20, 30} # 并集 print(set01 | set02) # {10,20,30,40} # 补集 print(set01 ^ set02) # {40, 10} print(set01 - set02) # {10} print(set02 - set01) # {40} # 子集 set03 = {20, 30} # True print(set03 < set01)

. 容器(小结):

种类:字符串str: 存储字符编码值、不可变、序列

​ 列表list:存储变量、可变、序列

​ 元组tuple:存储变量、不可变、序列

​ 字典dict:存储键值对、可变、散列

​ 集合set:存储键、可变、散列

可变与否:不可变:按需分配

​ 可变:预留空间+自动扩容

序列与散列:序列:有顺序、空间连续、定位灵活(索引切片)

​ 散列:没顺序、空间分散、定位迅速(k->v)

适用性:列表:单一维度得数据

​ 字典: 多个维度得数据

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 1. 可变性 tuple01 = (10, 20, 30) print(id(tuple01)) # 140557775685240 tuple01 += (40, 50) # 创建新元组 print(id(tuple01)) # 140557806661968 print(tuple01) list01 = [10, 20, 30] print(id(list01)) # 140095038055528 list01 += [40, 50] # 在原有基础上增加 print(id(list01)) # 140095038055528 print(list01) # 2. 基础操作 # -- 创建 list01 = [10, 20, 30] dict01 = {"a": 10, "b": 20, "c": 30} list02 = list(dict01.items()) print(list02) # [('a', 10), ('b', 20), ('c', 30)] # 格式要求:一分为二 dict02 = dict(list02) print(dict02) # -- 添加 list01.append(40) list01.insert(1, 50) dict01["d"] = 40 print(list01) # -- 定位 print(list01[-1]) print(list01[:3]) print(list01[2:2]) # 空 print(dict02["a"]) # -- 遍历 for item in list01: print(item) for i in range(len(list01) - 1, -1, -1): print(list01[i]) for key in dict01: print(key) for value in dict01.values(): print(value) for value in dict01.items(): print(value) # -- 删除 list01.remove(10) del list01[:2] del dict01["a"]

. for循环

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 外层循环控制行 for r in range(3): # 0 1 2 # 内层循环控制列 for c in range(5): # 01234 01234 01234 print("*", end=" ") print() # 换行

. 二维列表:列表名[行索引][列索引]

复制代码
1
2
3
4
5
6
7
8
9
list01 = [ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], ] print(list01[0][0]) print(list01[0][3]) print(list01[2][1]) # 12

. 列表推导式嵌套

复制代码
1
2
3
4
5
6
7
8
9
10
11
list01 = ["香蕉", "苹果", "哈密瓜"] list02 = ["牛奶", "可乐", "雪碧", "咖啡"] # list_result = [] # for r in list01: # for c in list02: # list_result.append(r + c) list_result = [r + c for r in list01 for c in list02] print(list_result)

最后

以上就是魁梧花卷最近收集整理的关于字典、字典推导式、双for循环的全部内容,更多相关字典、字典推导式、双for循环内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部