当有空字符串或有“ $ none”字符串时,我想完全忽略列表中的这些列表(顺便说一句,为什么会出现“ $ none”,这是什么意思?) 。在我的程序中,使用此命令时,我向列表返回了一个空字符串:
代码:
aaa = ["mom", "is", "king"]
example = ["buying", "mom", "is", "spending"]
下面的代码:
for x in aaa:
if xx in example:
if x in xx:
return ""
else:
return xx
我只知道如何返回一个空字符串,但是不知道在触发时忽略“ if”这一部分的其他方式
如果以上无法完成,则以下将是我的主要问题。
我的代码:
a = [['checking-$none', ''],
['', 'checking-some'],
['checking-people', 'checking-might'],
['-checking-too', 'checking-be']]
for x in a:
f = filter(None, x)
for ff in f:
print(ff)
当前输出:
checking-$none
checking-some
checking-people
checking-might
-checking-too
checking-be
预期输出:
checking-people
checking-might
-checking-too
checking-be
有办法吗?
答案 0 :(得分:1)
您可以像这样使用列表理解:
[item for lst in a if all(item and '$none' not in item for item in lst) for item in lst]
使用示例输入a
,返回:
['checking-people', 'checking-might', '-checking-too', 'checking-be']
或者,如果您只想打印,则下面的嵌套for
循环将起作用:
for lst in a:
for item in lst:
if not item or '$none' in item:
break
else:
print(*lst, sep='\n')
这将输出:
checking-people
checking-might
-checking-too
checking-be
答案 1 :(得分:0)
对您的代码进行的最小更改将过滤掉包含$ none的字符串
a = [['checking-$none', ''],
['', 'checking-some'],
['checking-people', 'checking-might'],
['-checking-too', 'checking-be']]
f = filter(lambda y: '' not in y and "checking-$none" not in y, a)
for x in sum(f, []):
print(x)