gpt4 book ai didi

Python:在any()函数中扩展迭代器变量的范围

转载 作者:行者123 更新时间:2023-11-28 19:12:17 24 4
gpt4 key购买 nike

我写了一些结构上等效的真实代码,我预计 firstAdjective 的结果会是 quick。但是结果显示 word 超出了范围。有什么巧妙的解决方案可以克服这个问题,但仍保留我想做的事情的“语言”风格?

>>> text = 'the quick brown fox jumps over the lazy dog'
>>> adjectives = ['slow', 'quick', 'brown', 'lazy']
>>> if any(word in text for word in adjectives):
... firstAdjective = word
...
Traceback (most recent call last):
File "<interactive input>", line 2, in <module>
NameError: name 'word' is not defined

最佳答案

您可以在生成器表达式 上使用next:

firstAdjective = next((word for word in adjectives if word in text), None)

if firstAdjective:
...

当找不到单词时返回默认值 None(信用@Bakuriu)

试用:

>>> firstadjective = next((word for word in adjectives if word in text), None)
>>> firstadjective
'quick'

关于Python:在any()函数中扩展迭代器变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38476877/

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