Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我使用'all'正确吗?_Python - Fatal编程技术网

Python 我使用'all'正确吗?

Python 我使用'all'正确吗?,python,Python,一位用户问()为什么他在查字典时出现keyrerror,以及如何避免这种异常 作为回答,我建议他先查一下字典里的钥匙。因此,如果他需要字典中的所有键['key\u a'、'key\u b'、'key\u c'],他可以用以下方法进行测试: if not all([x in dictionary for x in ['key_a', 'key_b', 'key_c']]): continue 通过这种方式,他可以忽略没有预期键的字典(字典列表是从文件加载的JSON格式行创建的)*如果与此

一位用户问()为什么他在查字典时出现
keyrerror
,以及如何避免这种异常

作为回答,我建议他先查一下字典里的钥匙。因此,如果他需要
字典
中的所有键['key\u a'、'key\u b'、'key\u c'],他可以用以下方法进行测试:

if not all([x in dictionary for x in ['key_a', 'key_b', 'key_c']]):
    continue
通过这种方式,他可以忽略没有预期键的字典(字典列表是从文件加载的JSON格式行创建的)*如果与此问题相关,请参阅原始问题以了解更多详细信息


一个用户在Python中有更多的经验,因此我认为它的职业和黄金徽章的权威告诉我,我错误地使用了<代码>所有< /代码>。我想知道这是否真的是这样(据我所知,这是预期的效果)以及原因,或者是否有更好的方法来检查两个键是否都在字典中。

是的,这很好,但你甚至不需要理解列表

if not all(x in dictionary for x in ['key_a', 'key_b', 'key_c']):
    continue

如果您有周围的
[]
,它将在调用
all
之前计算所有元素。如果删除它们,内部表达式是一个生成器,在第一次
False

时,它将作为您的问题的旁白,但是如果您在尝试获取某个键的值之前关心该键是否在字典中,则始终可以调用dict上的
get()
方法。因此
dict.get('key',None)
将返回
key
None
的值,其中as
dict['key']
可能会导致键错误。
应该我们=lambda:False#例如NO
销毁世界=lambda:“召唤Cthulhu,世界的食客”
,然后
如果所有(f()代表f in(应该我们,销毁世界)):打印(“我们还在这里吗?”)
不会毁灭世界。@Martijnpiers这方面的问题是,Cthulhu可以按时间和生成器表达式顺序旅行,因此很不幸,他可能会先被称为:P@CoryKramer当前位置然而,在他被召唤之前,他只能保持休眠状态。休眠的Cthulhu是一个快乐而静止的Cthulhu,无论在时间上还是精神上ace.:-)我以为你叫克图鲁第四,不是第一。