设置-向上
我在循环中创建字典,所有字典都包含相同的键但值不同。
其中一个词典的一部分,例如,
data = {
'type': 'An apartment',
'sublet': 'Indifferent',
}
在循环结束时,我将每个字典data
的值附加到“'大'字典all_data
。
我在开始循环之前创建all_data = {}
。
问题
当我将data
的值附加到all_data
时,Python会将data
的字符串值拆分为字符。例如。
all_data {
'type': ['A', 'n', ' ', 'a', 'p', 'a', 'r', 't', 'm', 'e', 'n', 't'],
'sublet': ['I', 'n', 'd', 'i', 'f', 'f', 'e', 'r', 'e', 'n', 't'],
}
我通过以下代码(我找到here),
附加值for key, value in data.items():
all_data.setdefault(key,[]).extend(value)
我如何获得,
all_data {
'type': 'An apartment',
'sublet': 'Indifferent',
}
这样在循环结束后,我获得了
all_data {
'type': 'An apartment', 'A room', 'An apartment',
'sublet': 'Indifferent', 'Yes', 'Yes'
}
订单很重要。
答案 0 :(得分:3)
您应该使用.append()
而不是.extend()
。
for key, value in data.items():
all_data.setdefault(key,[]).append(value)
.extend()
使用给定的iterable扩展列表。字符串是可迭代的字符,因此目标列表将为每个项目接收单个字符。