python - 如何在 Python 3 中测试所有可迭代对象是否为真

标签 python

任务是获取输入的字符串(query)并查看是否有任何单词与字典(rsp_dict)中的键匹配。简单。

words = query.split()

for each in words:
    if each in rsp_dict:
        print(rsp_dict[each])

但我想不通的是,如果没有单词与字典中的键匹配,如何让它打印出一个短语。我已经尝试了一百万种不同的方法,但我总是以打印每个 False 值的短语结束,而不仅仅是一次。

我真的很希望能从中学习,所以非常感谢任何帮助或指导。也请随时就我对这个问题的措辞提出修改建议。

最佳答案

这里假设 words = input(*)

使用集合:

not set(words.split()).isdisjoint(rsp_dict.keys())

使用任何:

any(w in words.split() for w in rsp_dict.keys())

使用列表理解:

[w for w in words.split() if w in rsp_dict.keys()]

使用其中任何一个:

if (expression):
   print("Found a matching word in phrase")
else:
   print("No matches")

不太花哨,但您始终可以使用常规的 forloop 运行。

关于python - 如何在 Python 3 中测试所有可迭代对象是否为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36779841/

相关文章:

python - 重新组合或重新组织字典中的键?

python - 简单的python日志记录配置中的重复输出

python - 垃圾收集 无 - del 差异

PYTHON Mechanize 登录表单类

python - Pandas 数据框适用于日期时间列 : does not work

Python 在列表末尾限制切片负界

python - 从 gevent-subprocess 获取实时标准输出?

python - Flask 会自动删除中止的大文件上传吗?

python - 想要将列表的每个元素与 n 个列表的每个元素组合

python - 导入错误 : No module named theano