Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 元组中所有行元素的同时条件_Python_Tuples - Fatal编程技术网

Python 元组中所有行元素的同时条件

Python 元组中所有行元素的同时条件,python,tuples,Python,Tuples,我有以下格式的元组: [(None, datetime.datetime(2012, 9, 14, 15, 0)), (None, None), (None, None), (None, None), (None, datetime.datetime(2012, 9, 14, 16, 0))] 我想迭代元组,检查两个组件是否都为null,如果为null,则将它们从项中删除-只留下以下内容: [(None, datetime.datetime(2012, 9, 14, 15, 0)), (N

我有以下格式的元组:

[(None, datetime.datetime(2012, 9, 14, 15, 0)), (None, None),
 (None, None), (None, None), (None, datetime.datetime(2012, 9, 14, 16, 0))]
我想迭代元组,检查两个组件是否都为null,如果为null,则将它们从项中删除-只留下以下内容:

[(None, datetime.datetime(2012, 9, 14, 15, 0)),
 (None, datetime.datetime(2012, 9, 14, 16, 0))]

在单个循环中同时执行检查的最简洁的方法是什么?

使用列表理解和元组解包:

output_list = filter(any, input_list)
>>> lst = [(None, datetime.datetime(2012, 9, 14, 15, 0)), (None, None),
... (None, None), (None, None), (None, datetime.datetime(2012, 9, 14, 16, 0))]
>>> [(a,b) for a,b in lst if a or b]
[(None, datetime.datetime(2012, 9, 14, 15, 0)),
 (None, datetime.datetime(2012, 9, 14, 16, 0))]

我会使用一个列表和理解


你可以用any代替lambda t:anyt。回答不错,其他的也可以,但这是我要找的一个额外的,如果我只想得到所有项目都没有的行怎么办?output\u list=filterlambda t:not anyt,input\u list使用列表理解,如其他答案所示,在Python2和Python3中都可以保持不变——假设目标是实际生成一个输出列表。它也可能执行得更快。
left = [x for x in a if any(x)]
>> [(None, datetime.datetime(2012, 9, 14, 15, 0)), (None, datetime.datetime(2012, 9, 14, 16, 0))]