加载中...

字典推导式

字典推导式

字典推导式是一种简洁的构造字典的方式。它的语法和列表推导式类似,只不过结果是一个字典,而不是列表。

enumerate函数

enumerate函数可以将一个可迭代对象转化为一个枚举对象,其中每个元素都是一个包含索引和值的元组。它的基本语法如下:

enumerate(iterable, [start=0])
#其中,`iterable`是一个可迭代对象,`start`是索引的起始值。
from collections import Iterator, Iterable
lst = ["王文", "吕洞宾", "何仙姑", "铁拐李", "张国老", "曹国舅", "蓝采和", "韩湘子"]
it = enumerate(lst, start=100)
print(isinstance(it, Iterator))  # 检查it是否为迭代器

我们可以使用字典推导式配合enumerate函数来创建字典:

dic = {k: v for k, v in enumerate(lst, start=100)}
print(dic)

或者,我们可以直接使用dict函数来将枚举对象转化为字典:

dic = dict(enumerate(lst, start=100))
print(dic)

zip

zip函数可以将多个可迭代对象中的元素按照索引配对,形成一个新的迭代器。它的基本语法如下:

zip(iterable1, iterable2, ...)

其中,iterable1, iterable2等是可迭代对象。

以下是一个示例:

lst_key = ["ww", "axd", "yyt"]
lst_val = ["王维", "安晓东", "杨元涛"]

dic = {k: v for k, v in zip(lst_key, lst_val)}
print(dic)

或者,我们可以直接使用dict函数来将配对的元素转化为字典:

dic = dict(zip(lst_key, lst_val))
print(dic)

# 在索引下标同时存在时,才会进行配对,否则舍弃.
lst1 = ["孙开启","王永飞","于朝志"]
lst2 = ["薛宇健","韩瑞晓"]
lst3 = ["刘文博"]
posted @ 2024-03-03 19:59  江寒雨  阅读(65)  评论(0)    收藏  举报