【问题标题】:Why when x(t) is empty the output is ['a','b','a']. Python为什么当 x(t) 为空时,输出为 ['a','b','a']。 Python
【发布时间】:2015-07-10 19:44:09
【问题描述】:
def x(t):
    return '' in t

def t(aList):
    bList = aList[:]
    for i in bList:
        if x(i) == False:
            aList.remove(i)
    print aList

t(['a','b','c'])

输出是['a','b','a'],它应该是[]

但如果我更改以下内容:

def x(t):
    return 'd' in t

输出将是[]

【问题讨论】:

  • 因为'' in 'a''' in 'b'
  • 你的意思是输出是['a', 'b', 'c']

标签: python string list


【解决方案1】:

一个空字符串总是“在”一个字符串中。这是意料之中的。

>>> '' in 'hello'
True
>>> '' in ''
True
>>> 'a' in ''
False
>>> 'a' in 'abc'
True
>>> 'd' in 'abc'
False

【讨论】:

    【解决方案2】:

    '' in t 检查空字符串是否是t 的子字符串。但是空字符串是每个字符串的子字符串。因此,您的条件始终返回 True,并且不会从 aList 中删除任何内容。

    【讨论】:

      【解决方案3】:
      def t(aList):
          print [i for i in aList if i]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-29
        • 2010-12-08
        • 2011-05-30
        • 1970-01-01
        • 1970-01-01
        • 2021-10-06
        • 2020-05-04
        相关资源
        最近更新 更多