了解创建空列表字典的挑战
在 Python 中,由于共享引用,创建空列表字典可能会很棘手使用 dict.fromkeys() 时列表对象的。尝试将一个元素追加到一个键上,由于引用,会更新具有相同元素的所有键。
Fromkeys 方法的行为
当 dict.fromkeys 的第二个参数时(),在本例中是一个空列表,被传递,结果字典中的所有值共享对列表对象的相同引用。对一个键进行的任何修改都会影响所有其他键。
替代解决方案
为了避免此问题,存在替代解决方案:
data = {k: [] for k in range(2)}
这将创建一个字典,其中每个键都有自己唯一的空列表。
data = dict([(k, []) for k in range(2)])
通过将列表理解转换为字典,实现与字典理解相同的结果。
data = dict((k, []) for k in range(2))
在此版本中,生成器表达式直接传递到 dict 构造函数,绕过列表理解步骤。表达式周围的括号可以省略。
通过利用这些替代方法,可以正确创建空列表的字典,允许操作单个键而不影响其他键。
以上是在Python中创建空列表字典时如何避免共享引用?的详细内容。更多信息请关注PHP中文网其他相关文章!