python生成器转换

2024-04-19 14:31:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何将只有一个元素的生成器转换为列表。用于例如如果f是一个只有一个元素的生成器,list(f)将引发“notiterable”。如何解决这个问题?提前谢谢!你知道吗

nx.adamic_adar_index(g, (0, 1))
list(nx.adamic_adar_index(g, (0, 1)))

这将引发TypeError:“int”对象不可iterable,以下是OK

nx.adamic_adar_index(g, [(0, 1),(2,3)])
list(nx.adamic_adar_index(g, [(0, 1),(2,3)]))

结果是[(0,1,2.38788410007006875),(2,3,0.9282626109897467)]


Tags: 对象元素列表indexokiterablelistint
2条回答

如果我理解正确,这个:[(0, 1),(2,3)]是两个元素的列表(每个元素都是两个元素的元组),但是(0, 1)是一个单独的元素,是不是需要一个单独元素的列表,比如[(0, 1)]?你知道吗

我猜:

list(nx.adamic_adar_index(g, [(0, 1)]))

我会做你想做的。你知道吗

会是这样吗?你知道吗

必须评估发电机才能列出。不能列出生成器本身。你知道吗

>>> def g():
...     yield 1
...     
>>> list(g())
[1]
>>> list(g)
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
TypeError: 'function' object is not iterable

相关问题 更多 >