【问题标题】:Iterating over dictionary yields string values to be split into characters遍历字典会产生要拆分为字符的字符串值
【发布时间】:2018-01-05 08:26:36
【问题描述】:

设置

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

其中一本词典的一部分作为例子,

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

顺序很重要。

【问题讨论】:

  • here 是一个不错的单行字!

标签: python dictionary split character


【解决方案1】:

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

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

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

【讨论】:

  • 我会被诅咒的。谢谢!
  • @LucSpan 如果此答案解决了您的问题,请单击复选标记。它会将问题标记为已解决,并为您和回答者提供声誉。没有义务这样做。
  • 我知道,只需要等待。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多