【问题标题】:How do I check in python if an element of a list is empty?如果列表的元素为空,如何签入python?
【发布时间】:2011-12-07 07:39:43
【问题描述】:

我有一个类似的列表

l = []

如何检查 l[i] 是否为空?

l[i] = ''

l[i] = ""

不工作。

【问题讨论】:

  • 空列表是没有元素的列表 (len(l) == 0)。考虑一下这是真的:l = [""]; l[0] == ""l = [None]; l[0] is None。现在,目标/意图是什么? :)
  • 这有点模棱两可。 “空”是指索引存在,但是是空字符串吗?或者它根本不存在,例如元素的数量小于您的索引?
  • 你试过相等比较运算符吗?喜欢:l[0] == ""
  • 你不能只说“X 没用”。你做了什么具体的比较?你遇到了什么错误?
  • 我知道元素 l[i] 存在,但是如何检查字符串是否为空? (我也测试了 l[i] == "" 但它不起作用。)

标签: python list element


【解决方案1】:

试试:

if l[i]:
    print 'Found element!'
else:
    print 'Empty element.'

【讨论】:

  • 这就是方式。
【解决方案2】:

只需检查该元素是否等于 None 类型或使用 NOT 运算符,这相当于您在其他语言中观察到的 NULL 类型。

if not A[i]:
    ## do whatever

无论如何,如果您知道列表的大小,那么您不需要做所有这些。

【讨论】:

    【解决方案3】:

    如果您想知道索引i 处的列表元素是否设置,您可以简单地检查以下内容:

    if len(l)<=i:
        print ("empty")
    

    如果您正在寻找其他语言中的 NULL 指针或 NULL 引用之类的东西,Python 为您提供None。那就是你可以写:

    l[0] = None # here, list element at index 0 has to be set already
    l.append(None) # here the list can be empty before
    # checking
    if l[i] == None:
        print ("list has actually an element at position i, which is None")
    

    【讨论】:

      【解决方案4】:

      假设

      letter= ['a','','b','c']
      
      for i in range(len(letter)):
          if letter[i] =='':
              print(str(i) + ' is empty')
      

      output- 1 is emtpy

      所以我们可以看到索引 1 是空的。

      【讨论】:

        【解决方案5】:

        与某些语言不同,empty 在 Python 中不是关键字。 Python 列表是从头开始构建的,所以如果元素 i 有一个值,那么元素 i-1 就有一个值,对于所有 i &gt; 0

        要进行相等性检查,您通常使用== 比较运算符。

        >>> my_list = ["asdf", 0, 42, '', None, True, "LOLOL"]
        >>> my_list[0] == "asdf"
        True
        >>> my_list[4] is None
        True
        >>> my_list[2] == "the universe"
        False
        >>> my_list[3]
        ""
        >>> my_list[3] == ""
        True
        

        这是the strip method 的链接:您的评论向我表明您可能遇到了一些奇怪的文件解析错误,因此请确保在您期望空行之前去掉换行符和多余的空格。

        【讨论】:

        • 除了答案中的一些语法错误(已修复)之外,教人们使用 is 关键字进行相等性测试是个坏主意。它用于对象身份测试(仅此而已)。否则,you're in for some confusion.
        • 我的错误,出于某种原因,我的印象是None 比较使用了is。也许这是我从 PHP 中记住的东西或其他东西......
        • 是的,因为只有一个None 对象,所以你使用is 运算符来显式测试对象身份。
        • 如果我声明 l.append(None), l[i] is None 会起作用,但是我从文件中读出并且 l.append(linecache.getline(datei, number)) 创建了一个新项目,但不能用“is None”来证明它是否为空。
        • 那么你想要最后一种情况my_list[3] == ''。提示:您是否使用mystring.strip() 去除换行符和其他空格?
        【解决方案6】:

        我用len() 和一个简单的if/else 语句解决了这个问题。

        当包裹在len() 中时,列表元素将以整数形式返回(1 表示存在,0 表示不存在)

        l = []
        
        print(len(l)) # Prints 0
        
        if len(l) == 0:
            print("Element is empty")
        else:
            print("Element is NOT empty")
        
        Output:
        
        Element is empty    
        

        【讨论】:

          【解决方案7】:
          List = []
          
          for item in List:
              if len(item.rstrip()) != 0:
                  # Do whatever you want
          

          如果您有带有一些空格的长字符串列表并且您没有考虑这些列表值,这将很有用。

          【讨论】:

            猜你喜欢
            • 2021-04-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-10-15
            • 2013-03-24
            • 2020-01-16
            • 1970-01-01
            • 2018-06-15
            相关资源
            最近更新 更多