有没有办法使用any?
返回变量不使用Any:
for punctuation in punctuations_list:
if punctuation in utterance:
print (punctuation)
使用Any(因为标点符号未初始化而出现错误):
if any(punctuation in utterance for punctuation in punctuations_list):
print (punctuation)
答案 0 :(得分:3)
不,any()
仅生成True
或False
。如果您需要匹配的元素,请不要使用any()
,而是使用过滤器(就像使用for
循环一样)。
您可以先使用列表推导来进行过滤:
matching = [p for p in puntuations_list if p in utterance]
if matching:
# print all matching punctuation on separate lines
print(*matching, sep='\n')
或者如果您只需要第一个匹配元素,请使用next()
function和生成器表达式:
matching = next((p for p in puntuations_list if p in utterance), None)
if matching is not None:
print(matching)
如果生成器表达式不生成任何值,则返回next()
的第二个参数;所以此处None
表示没有匹配的标点符号(因此any()
会返回False
)。
答案 1 :(得分:2)
不,any()
只能返回True of False,如果需要使用变量filter()