我有两个不相等的列表,我正在使用itertools遍历它们,并尝试使用filter函数来删除List1中生成的None,以便最终a仅包含两个元素而不是三个(计算None)。但是我一直收到此错误:Type error: NoneType object is not iterable。
import itertools
List1 = [['a'],['b']]
List2 = ['A','b','C']
l = list(itertools.chain(*List1))
print(l)
for a, b in itertools.zip_longest((b for a in List1 for b in a),List2):
filter(None, a)
print(a,b)
zip_longest
?zip
不已经完全满足你的需求了吗? - user2357112a
只是一个元素,不是列表,并且最后是None
。另外,如果你想要“过滤掉”None
,那么在b
的第三个元素中,a
将会是什么?可以使用带有None
的zip_longest
或者只使用zip
。 - tobias_kNone
似乎是一个不错的选择,你只需要在对它进行操作之前检查它是否为None
。另一种变体可能是使用你的类的特殊实例作为哨兵值,而不是None
。 - tobias_k