作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这两个不相等的列表,我正在使用 itertools 循环遍历它们,我正在尝试使用过滤器函数删除 List1 中生成的 None ,以便在一天结束时 a 只包含两个元素三个(算上一个)但我不断收到此错误:类型错误:NoneType 对象不可迭代
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)
最佳答案
不完全清楚你想要什么。据我了解问题和评论,您想使用 izip_longest
组合列表,但结果中没有任何 None
元素。
这将从列表的压缩“切片”中过滤出 None
并仅打印非 None
值。但请注意,通过这种方式您无法确定 non_none
列表中的第一个元素是否来自第一个列表或第二个或第三个。
a = ["1", "2"]
b = ["a", "b", "c", "d"]
c = ["x", "y", "z"]
for zipped in izip_longest(a, b, c):
non_none = filter(None, zipped)
print non_none
输出:
('1', 'a', 'x')
('2', 'b', 'y')
('c', 'z')
('d',)
顺便说一句,您的filter(None, a)
做了什么:它从您的a
中过滤None
值,即从strings "a"
和 "b"
(作用不大,因为它们不包含 None
值),直到最后一个值失败,因为 None
不可迭代。此外,它无论如何都会丢弃结果,因为您没有将它绑定(bind)到变量。 filter
不会改变原始列表,但会返回过滤后的副本!
关于python - 如何在 python 中遍历列表时删除 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29548084/
我是一名优秀的程序员,十分优秀!