迭代字典会产生要拆分为字符的字符串值

时间:2017-07-29 09:10:37

标签: python dictionary split character

设置-向上

我在循环中创建字典,所有字典都包含相同的键但值不同。

其中一个词典的一部分,例如,

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'
         }

订单很重要。

1 个答案:

答案 0 :(得分:3)

您应该使用.append()而不是.extend()

for key, value in data.items():
    all_data.setdefault(key,[]).append(value)

.extend()使用给定的iterable扩展列表。字符串是可迭代的字符,因此目标列表将为每个项目接收单个字符。