为什么chain.from_iterable
给出错误,如果赋予它的参数是sus(7)
,这是一个整数列表,而是当[sus(7)]
传递给它时它完全正常。
import itertools as p
def sus(n):
a = []
for i in range(n):
a.append(i)
return a
print(sus(7))
for i in p.chain(sus(7)):
print('a1',i)
for i in p.chain.from_iterable(sus(7)):
print('a2',i)
答案 0 :(得分:0)
如果你看一下chain.from_iterable的来源:
def from_iterable(iterables):
# chain.from_iterable(['ABC', 'DEF']) --> A B C D E F
for it in iterables:
for element in it:
yield element
您可以看到它期望迭代的可迭代(例如列表)。如果你有一个字符串列表,这可以正常工作。但是,如果您的列表元素无法迭代,并且适用于任何数值(如int),则会抛出您所获得的错误。