尝试创建列表字典时,您可能会遇到意外问题,字典中的所有键共享相同的值列出参考。当使用 fromkeys() 方法并传递一个空列表作为第二个参数时,会发生这种情况。
dict.fromkeys() 方法有两个参数:键和值的集合。它使用提供的键创建一个新字典,并且每个键都映射到指定的值。
但是,如果传递空列表 [] 作为值,则结果字典中的所有键都将被分配相同的列表对象。这意味着对一个键的任何修改也会影响所有其他键。
要创建不同列表的字典,请考虑使用以下方法之一:
字典理解(Python 2.7 )
data = {k: [] for k in range(2)}
使用 dict() 构造函数的列表理解
data = dict([(k, []) for k in range(2)])
使用 dict() 构造函数的生成器表达式 (Python 2.4-2.6)
data = dict((k, []) for k in range(2))
这些方法确保字典中的每个键都与一个单独的列表对象关联,允许单个键更新而不影响其他键。
以上是在Python中创建空列表字典时如何避免共享列表引用?的详细内容。更多信息请关注PHP中文网其他相关文章!