gpt4 book ai didi

python - 如何获取导致 any() 返回 True 的值?

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:42 24 4
gpt4 key购买 nike

当我调用 any() 函数时,它只返回 TrueFalse。如果它返回 True,我如何获取导致它返回 True 的元素?

all = ['azeri', 'english', 'japan', 'india', 'indonesia']
lg = 'from japan'
lgn = lg.split()
if any(word in lgn for word in all):
print(word)

在这种情况下,我想获取单词japan。这段代码,如所写,只返回 NameError: name 'word' is not defined.

最佳答案

您假设 any 返回 TrueFalse 是正确的,这是基于条件与 iterable 中的任何元素匹配这一事实。但这不是您提取满足条件的元素的方式

来自文档:https://docs.python.org/3/library/functions.html#any

any(iterable)
Return True if any element of the iterable is true. If the iterable is empty, return False.

在您的情况下,由于满足条件,打印语句将按如下方式执行。但由于 word 仅在 any 内的生成器范围内,您会收到错误 NameError: name 'word' is not defined.< br/>另外你不应该命名你的变量 all 因为它会影响内置 all

In [15]: all = ['azeri', 'english', 'japan', 'india', 'indonesia'] 
...: lg = 'from japan'
...: lgn = lg.split()
...: if any(word in lgn for word in all):
...: print('condition met')
...:
condition met

如果你想找到满足条件的单词列表,你应该在列表理解中使用for循环

all_words = ['azeri', 'english', 'japan', 'india', 'indonesia']
lg = 'from japan'
lgn = lg.split()

#Find words which are present in lgn
res = [word for word in all_words if word in lgn]

print(res)

输出将是['japan']

关于python - 如何获取导致 any() 返回 True 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56195943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com