仅当某个元素不等于给定列表中的元素时,如何编写条件语句才能执行? [复制]
Posted
技术标签:
【中文标题】仅当某个元素不等于给定列表中的元素时,如何编写条件语句才能执行? [复制]【英文标题】:how to write a conditional statement to execute only if a certain element is not equal to elements in a given list? [duplicate] 【发布时间】:2021-10-02 07:25:49 【问题描述】:我有一个清单:list = ['abd','def','gab','dab']
我想检查某个元素是否x = 'gab'
等于列表中的一个元素。
如果是,那么我想做点什么,否则我想通过。在for loop
的末尾,如果 x 不等于列表中的任何元素,那么我想运行一些代码。
这是我的代码:
for string in range(len(list)):
if list(string) ==x:
do something...
break
else:
pass
我面临的挑战是编写条件来检查 x 是否不等于列表中的任何元素-我该如何编写这个条件?
直观地说,我会在 for 循环之后编写这段代码 - 但问题是它会执行,无论 x 是否等于列表中的元素,我不想要这个,因为我只想要如果 x 不等于列表中的元素,则执行下一个代码块!我希望这是有道理的。
【问题讨论】:
用你自己的话来说,当你写range(len(list))
时,你期望它是什么意思?你认为string
产生的第一个值是什么?第二个等等?
【参考方案1】:
在这种情况下,您可以使用:if x in list:
在更复杂的情况下,如果你有比简单比较更复杂的事情,你可以这样做:if any(x == item for item in list):
附带说明,使用名称 list
不是一个好主意,因为 Python 已经使用该名称,它可能会让人感到困惑。
PS:要添加另一个解决方案,在 Python 中,for
循环可以有一个 else
子句,如果没有 break
,则执行该子句;如果循环体太复杂而无法放入单个表达式中,这将很有用。
【讨论】:
嗨 Sabik,谢谢。我最初使用 'if x in list' 但这不起作用,因为如果我们说 x = 'ab' 它会返回 True!因为'ab'在'gab'中,但它们并不相等! 但我相信您的第二个建议效果很好。 不,除非整个项目相等,否则它不会匹配 any() 常用吗?这是我第一次遇到它 "因为 'ab' 在 'gab' 中" 这将不会导致代码按照您期望的方式运行。in
带有一个列表,比较 平等 和 每个元素。只有in
带有一个单个字符串 才能进行子字符串匹配。【参考方案2】:
您可以使用any()
x = 'gab'
list1 = ['abd','def','gab','dab']
if any(x==item for item in list1):
print("Yes. Match found.")
else:
print("Match was not found")
【讨论】:
以上是关于仅当某个元素不等于给定列表中的元素时,如何编写条件语句才能执行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
php foreach 循环中的 HTML 表格,其中仅当元素等于表格列标题名称时才会填充单元格数据