gpt4 book ai didi

列表推导期间的 Python 字典赋值

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:14 25 4
gpt4 key购买 nike

我有这样的权限字典:

{'READ': True,  'WRITE': None, 'DELETE': False}

实际的字典有更多的键,但这对于这个例子来说已经足够了。我想遍历字典并将 None 的任何值更改为 False。这可以通过 for 循环轻松完成,但我想知道是否有一种惯用的方法可以通过列表理解来完成。如果它是一个对象而不是字典,我会这样做:

[setattr(k, v, False) for k, v in object if v is None]

(或类似的),但我不确定如何在不使用 dict.__setitem__

的情况下这样做

这对解决我的问题不是特别重要,但我只是想知道是否有更简洁的方法来做到这一点

最佳答案

您是否考虑过 dictionary comprehension :

>>> dct = {'READ': True,  'WRITE': None, 'DELETE': False}
>>> dct = {k:v if v is not None else False for k,v in dct.items()}
>>> dct
{'READ': True, 'WRITE': False, 'DELETE': False}
>>>

注意:如果您使用的是 Python 2.x,则应使用 dict.iteritems而不是 dict.items。这样做会提高效率,因为前者返回一个迭代器,而后者返回一个列表。

关于列表推导期间的 Python 字典赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20639498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com