【问题标题】:Return variable using "any" in python?在python中使用“any”返回变量?
【发布时间】:2017-06-22 09:47:59
【问题描述】:

有什么方法可以使用any返回变量吗?

不使用任何:

for punctuation in punctuations_list:
    if punctuation in utterance:
        print (punctuation)

使用任何(由于标点符号未初始化而出现错误):

if any(punctuation in utterance for punctuation in punctuations_list):
    print (punctuation)

【问题讨论】:

    标签: python return return-value


    【解决方案1】:

    不,any() 只会产生 TrueFalse。如果您需要匹配的元素,请不要使用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')
    

    或者如果您只需要 first 匹配元素,请使用 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)。

    【讨论】:

    • 或者next(),如果他们只想第一次出现
    • @Chris_Rands:我不清楚他们期望的输出是什么;我添加了选项。
    【解决方案2】:

    不,any() 只能返回 True of False,如果需要变量使用 filter()

    【讨论】:

      猜你喜欢
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      相关资源
      最近更新 更多