Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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_Python 2.7_List - Fatal编程技术网

如何检查python列表中的所有元组是否都有特定值

如何检查python列表中的所有元组是否都有特定值,python,python-2.7,list,Python,Python 2.7,List,我是python的新手,我正在努力寻找解决问题的更好方法 我的清单如下: [(1048, u'3', u'1', ), (1048, u'03', u'00','Deleted' ), (1048, u'4', u'0', 'Deleted')] 在每个元组中,最后一个属性可以是“已删除”或“无”。我需要检查是否所有元组都在最后一个位置“删除” 如何做到这一点 我试着做列表理解() 但在空数据的情况下,它似乎不起作用 有人能帮忙吗 提前谢谢 all(item[-1] == "Deleted"

我是python的新手,我正在努力寻找解决问题的更好方法

我的清单如下:

 [(1048, u'3', u'1', ), (1048, u'03', u'00','Deleted' ), (1048, u'4', u'0', 'Deleted')]
在每个元组中,最后一个属性可以是“已删除”或“无”。我需要检查是否所有元组都在最后一个位置“删除”

如何做到这一点

我试着做列表理解()

但在空数据的情况下,它似乎不起作用

有人能帮忙吗

提前谢谢

all(item[-1] == "Deleted" for item in items)
如果它们都包含“已删除”,则应返回
True

此外,所有元组都需要至少有4个元素。否则,您将得到一个索引错误

编辑:在注释中,最好使用您所说的
项目[-1]
“最后一个元素”

从您的示例可以推断,一些元组没有第四项,因此我添加了
len
检查。

下面的行可以工作

object_with_specific_attribute = [tup for tup in data if tup[-1] == 'Deleted']

检查每个元组-1位置,检查是否已删除或未删除,而不是在评论中建议部分解决方案,请建议完整答案作为答案。不清楚最后一项是否可能是无(作为无值)或元组中缺少(完全没有值)@Jérôme根据上面提供的例子,它似乎完全不存在。我认为写出这些元组的过程不是最好的。@Jerome:两种情况都有可能。ie:value也可以是none,或者元素本身不存在。OP表示最后一项,因此最好使用index
[-1]
,以防某些元组由于某种原因有更多或更少的元素。我认为“none”表示第四个元素不存在<代码>(1048,u'3',u'1',)[-1]是
1
,因此此解决方案不处理@Ev。Kounis@Chris_Rands是的,但我仍然认为它比
[3]
好。必须对缺失值或第四个值进行单独检查。其他一些解决方案也会检查长度。OP对于元组可能是什么样子或可能不是什么样子还不是很清楚。
all(len(tup) == 3 or tup[-1] in [None, "Deleted"] for tup in data)
object_with_specific_attribute = [tup for tup in data if tup[-1] == 'Deleted']