testdict = {'1':[1,1],'2':[2,2]}
test = []
for i in testdict:
test.append(k for k in i)
如果我们test为当前场景打印,我们会得到如下输出 -
[<generator object <genexpr> at 0x7f8216183d00>, <generator object <genexpr> at 0x7f82161090f8>]
我们如何获得实际数据?我们可以对列表理解进行追加吗?
testdict = {'1':[1,1],'2':[2,2]}
test = []
for i in testdict:
test.append(k for k in i)
如果我们test为当前场景打印,我们会得到如下输出 -
[<generator object <genexpr> at 0x7f8216183d00>, <generator object <genexpr> at 0x7f82161090f8>]
我们如何获得实际数据?我们可以对列表理解进行追加吗?
附加生成器表达式时,如果要迭代生成器表达式,则不会附加提取的值。您只是附加惰性迭代器对象。
您最可能想要做的是从字典中提取所有值。您可以在不使用itertools.chain显式for循环的情况下执行此操作:
from itertools import chain
testdict = {'1': [1,1], '2': [2,2]}
res = list(chain.from_iterable(testdict.values()))
print(res)
[1, 1, 2, 2]
请注意,字典项不被认为是有序的(除非您使用的是 Python 3.7+)。因此,您应该考虑使用OrderedDictorsorted(testdict.items())来定义输入的顺序。