我对列表中应该包含字典的python' append
与extend
有一些混淆:
holder = []
element = {}
element["id"] = 1
element["value"] = 2
holder.append(element)
print(holder)
按预期打印[{'id': 1, 'value': 2}]
但是,如果我使用:holder.extend(element)
代替holder.append(element)
,则输出将为:['id', 'value']
有人可以解释我为什么吗? (append vs. extend不适用于此)
答案 0 :(得分:5)
list.extend()
采用iterable并附加iterable的所有元素。默认情况下,字典会遍历其键,因此所有键都会附加到列表中。
list.append()
将对象原样并将其添加到列表中,这正是代码中发生的事情。
答案 1 :(得分:1)
执行append
,它会添加一个字体element
正在执行extend
,如果element
是列表,则会添加element
的每个内容:
>>> element = {}
>>> element["id"] = 1
>>> element["value"] = 2
>>> list(element)
['id', 'value']
在字典的情况下,它会迭代键。