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

时间:2017-01-23 10:00:13

标签: python python-2.7 list

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

我有一个如下列表:

 [(1048, u'3', u'1', ), (1048, u'03', u'00','Deleted' ), (1048, u'4', u'0', 'Deleted')]

在每个元组中,最后一个属性可以被删除'或者'无'。我需要检查所有元组是否已删除'在最后的地方。

怎么做。

我尝试做列表理解(https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions

object_with_specific_attribute = [dataObj for dataObj in data if "Deleted" in dataObj[3]]

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

有人可以帮忙吗?

提前致谢。

3 个答案:

答案 0 :(得分:4)

all(len(tup) == 3 or tup[-1] in [None, "Deleted"] for tup in data)

从你的例子中可以推断出一些元组没有第四项,所以我添加了len项检查。

答案 1 :(得分:3)

all(item[-1] == "Deleted" for item in items)

如果它们都包含"已删除"

,则应返回True

此外,所有元组都需要至少有4个元素。如果没有,您将收到索引错误

编辑:正如评论所示,最好按照你所说的item[-1]:"最后一个元素"

答案 2 :(得分:0)

以下行可行。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context"   
    xmlns:jms="http://www.springframework.org/schema/jms"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/jms 
        http://www.springframework.org/schema/jms/spring-jms.xsd">

  <bean id="mqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">           
        <property  name="brokerURL" value="tcp://Toshiba:61616" />  
  </bean>

  <bean id="topic1" class="org.apache.activemq.command.ActiveMQTopic">
        <property name="physicalName" value="chattopic" />      
  </bean>