【发布时间】:2015-07-20 20:14:15
【问题描述】:
if ('SCT', 'OVC', 'CLR') not in words[i]:
list_stat.append(words[i])
i=i+1
print words[i]
else:
i=i+1
我正在尝试在 Python 中创建 or 语句来解析列表。关键字的数量比您在 if 语句中看到的三个要长得多,因此嵌套的 if 语句会很快变得非常多余。我对 Python 有点陌生,但 not in 语句似乎最有效地将我的所有关键字组合在一起。问题是,我在尝试将元组与数组进行比较时不断出错。我也试过这种方式:
if words[i] not in ('SCT', 'OVC', 'CLR'):
list_stat.append(words[i])
i=i+1
print words[i]
else:
i=i+1
两者都不能正常工作。我还应该提到第二种方式运行没有错误,但不会从我的列表中删除单词。这三个词在我的列表中多次单独出现,尽管 not in 声明的全部目的是摆脱它们。我试图摆脱这些词的所有个别实例。我也尝试过 {} 而不是 () 但都不会摆脱列表中的单个单词。关于我做错了什么有什么想法吗?
【问题讨论】:
-
words[i] 的值是多少?我们不是魔术师。
-
第二个看起来更有可能工作,但你的缩进在任何一种情况下都是不寻常的。
-
第二个看起来应该可以工作,除了缩进不好。 “不起作用”是什么意思?
-
if ('SCT', 'OVC', 'CLR') not in words[i]-> "如果元组('SCT', 'OVC', 'CLR')不在words[i]所在的任何数据结构中" -
另外,我猜你想要
if not any(j in words[i] for j in ('SCT', 'OVC', 'CLR'))
标签: python list if-statement