gpt4 book ai didi

python - 为什么打印后不能从枚举数据集创建字典?

转载 作者:行者123 更新时间:2023-12-01 01:15:51 25 4
gpt4 key购买 nike

我正在和enumerate()一起练习和 python 中的字典。当我不打印枚举数据时,我可以根据枚举数据创建字典。但是当我打印出枚举数据时,我无法再创建字典。为什么会这样?

当我不打印我的枚举数据时:

data = ['a','b','c','d']

enum_data = enumerate(data, 1)

data_dict = dict(enum_data)
print("Data Dict: ", data_dict)

print("Should be 'a': ", data_dict.get(1))

我的输出是

Data Dict:  {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
Should be 'a': a

但是当我不这样做时:

data = ['a','b','c','d']

enum_data = enumerate(data, 1)
for enum, point in enum_data:
print("Count: ", enum, " ", "Element: ", point)

data_dict = dict(enum_data)
print("Data Dict: ", data_dict)

print("Should be 'a': ", data_dict.get(1))

我得到:

Count:  1   Element:  a
Count: 2 Element: b
Count: 3 Element: c
Count: 4 Element: d
Data Dict: {}
Should be 'a': None

最佳答案

enumerate返回一个迭代器。迭代器 may only be iterated over once .

常见的解决方案是使用 itertools.tee返回任意数量的独立迭代器:

from itertools import tee

data = ['a','b','c','d']

enum_data1, enum_data2 = tee(enumerate(data, 1), 2)
for enum, point in enum_data1:
print("Count: ", enum, " ", "Element: ", point)

data_dict = dict(enum_data2)

print("Data Dict: ", data_dict) # {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
print("Should be 'a': ", data_dict.get(1)) # a

关于python - 为什么打印后不能从枚举数据集创建字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54353201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com