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
输出为[]
。
答案 0 :(得分:8)
空字符串总是"在"一个字符串。这是预期的。
>>> '' in 'hello'
True
>>> '' in ''
True
>>> 'a' in ''
False
>>> 'a' in 'abc'
True
>>> 'd' in 'abc'
False
答案 1 :(得分:3)
'' in t
检查空字符串是否为t
的子字符串。但是空字符串是每个字符串的子字符串。因此,您的条件始终返回True,并且从aList
中删除任何内容。
答案 2 :(得分:0)
def t(aList):
print [i for i in aList if i]