Skip to main content
 首页 » 编程设计

python之更优雅/pythonic 的方式附加到数组,或创建它

2025年05月04日17artech

出于某种原因,考虑到我在 Python 中不断发现的所有语法糖,以下代码对我来说感觉有点麻烦,所以我想询问是否有更好的方法:

pictures = list_of_random_pictures() 
invalid_pictures = {} 
for picture in pictures: 
    if picture_invalid(picture): 
        if not invalid_pictures.get(picture.album.id): 
            invalid_pictures[picture.album.id] = [] 
        invalid_pictures[picture.album.id].append(picture) 

所以澄清一下,我想知道是否有更易读的方法来处理上面的最后 3 行。因为我要重复 invalid_pictures[picture.album.id] 3 次,如果它完全可以避免的话,它似乎没有必要。

编辑:刚刚意识到我上面的代码会出现 KeyError,所以我修改了它来处理这个问题。

请您参考如下方法:

事实上,标准库中有一个对象可以准确处理这种情况:collections.defaultdict

它将一个类型或函数作为参数,为缺失的键生成默认值。

from collections import defaultdict 
 
invalid_pictures = defaultdict(list) 
for picture in pictures: 
    if picture_invalid(picture): 
        invalid_pictures[picture.album.id].append(picture)