仅当某个元素不等于给定列表中的元素时,如何编写条件语句才能执行? [复制]

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 表格,其中仅当元素等于表格列标题名称时才会填充单元格数据

仅当满足每行元素的条件时,才计算二维数组特定列的均值和方差

使用Prolog规则在查询中显示给定列表的第一个元素?

LeetCode题解:移除元素

Python 中如何删除一个列表 List 中多个符合条件的元素

Python 中如何删除一个列表 List 中多个符合条件的元素