我是靠谱客的博主 魁梧花卷,最近开发中收集的这篇文章主要介绍字典、字典推导式、双for循环,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

. 字典:定位、删除

# 表达一个人的信息
# 如果使用列表,通过索引定位元素,代码可读性差.
# 列表擅长存储单一维度信息,例如:姓名列表
# 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"]

. 字典遍历

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~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. 创建
# {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)

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

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. 可变性
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循环

# 外层循环控制行
for r in range(3):
# 0
1
2
# 内层循环控制列
for c in range(5):
# 01234
01234
01234
print("*", end=" ")
print()
# 换行

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

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

. 列表推导式嵌套

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循环所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部