python入门之字典推导式

"""
字典推导式
"""
# 1 2 3 4 ... 10 -> 平方
# 传统式
dict01 = {}
for item in range(1, 11):
    dict01[item] = item ** 2
print(dict01)
# 字典推导式
dict02 = {item: item ** 2 for item in range(1, 11)}
print(dict02)

 

# 只记录大于5的数字
# 传统模式
dict01 = {}
for item in range(1, 11):
    if item > 5:
        dict01[item] = item ** 2
print(dict01)
# 字典推导式
dict02 = {item: item ** 2 for item in range(1, 11) if item > 5}
print(dict02)

# 练习1:
# ["无忌", "赵敏", "周芷若"]
# -> {"无忌":2,"赵敏":2,"赵敏":3 }
# 传统方式:
list01 = ["无忌", "赵敏", "周芷若"]
dict01 = {}
for item in list01:
    dict01[item] = len(item)
print(dict01)
# 字典推导式
dict02 = {item: len(item) for item in list01}
print(dict02)

 

# 练习2:
# ["无忌", "赵敏", "周芷若"]
# -> [101, 102, 103]
# {"无忌":101,"赵敏":102,"赵敏":103}
# 通过索引同时在多个类表中获取元素
list01 = ["无忌", "赵敏", "周芷若"]
list02 = [101, 102, 103]
dict01 = {}
for i in range(len(list01)):
    dict01[list01[i]] = list02[i]
print(dict01)
# 需求:字典如果根据value查找key
# 解决方案1:键值互换
dict02 = {value: key for key, value in dict01.items()}
print(dict02)
print(dict02[101])
# 缺点:如果key重复,交换或则丢失数据
# 如果需要保持所有数据,可以使用  [(k, v),]
list02 = [(key, value)for key, value in dict01.items()]
print(list02)

 



posted @ 2023-02-10 10:55  黎小菜  阅读(179)  评论(0)    收藏  举报