我试过:
a_list = [1,2,3]
b_list = [4,5]
...
call_function(a_list + iter(b_list)) # TypeError
有没有比这更好的代码:
a_list = [1,2,3]
b_list = [4,5]
...
new_list = a_list[:]
new_list += iter(b_list) # no TypeError?
call_function(new_list)
考虑任何迭代器,我使用islice
代替iter
。你知道吗
Tags:
现有的答案已经解决了这个问题。此外,该行:
不会引发错误,因为它调用
list.__iadd__
,后者支持迭代器的添加。你知道吗在python-3.5中,可以使用iterable unpacking:
这是因为:
注意
a_list
和iter(b_list)
前面的星号(*
)。而且a_list
只能是一个有限的iterable/迭代器。因此,您可以简单地构造一个列表,将有限的iterables连接在一起。你知道吗您可以通常使用^{} 加入iterables:
相关问题 更多 >
编程相关推荐