python - 将字典值转换为值列表 python

标签 python list dictionary

我对Python很陌生,想知道如何将下面的键->值对字典转换为键->[值],即我的值是一个列表,以便我可以将更多元素附加到列表中。 我的字典如下:

{'Mississippi': '28', 'Oklahoma': '40', 'Delaware': '10', 'Minnesota': '27', 'Illinois': '17', 'Arkansas': '05', 'New Mexico': '35', 'Indiana': '18', 'Maryland': '24'}

如何转换为:

{'Mississippi': ['28'], 'Oklahoma': ['40'], 'Delaware': ['10'], 'Minnesota': ['27'], 'Illinois': ['17'], 'Arkansas': ['05'], 'New Mexico': ['35'], 'Indiana': ['18'], 'Maryland': ['24']}

所以我尝试这样做:

dict_cntrycodes= {k: [v] for k,[v] in cntry_codes} 

但我遇到错误:太多值无法解压。

有什么建议吗?

最佳答案

>>> testDict = {'Mississippi': '28', 'Oklahoma': '40', 'Delaware': '10', 'Minnesota': '27', 'Illinois': '17', 'Arkansas': '05', 'New Mexico': '35', 'Indiana': '18', 'Maryland': '24'}

>>> {k: [v] for k, v in testDict.items()}
{'Mississippi': ['28'], 'Oklahoma': ['40'], 'Delaware': ['10'], 'Minnesota': ['27'], 'Illinois': ['17'], 'Arkansas': ['05'], 'New Mexico': ['35'], 'Indiana': ['18'], 'Maryland': ['24']}

由于第一个字典中的键是字符串而不是列表,因此您收到了太多值无法解包错误。以下作品。

>>> elem = "abc"
>>> [elem] = ['abc']

但是,这会产生错误。

>>> [elem] = "abc"

Traceback (most recent call last):
  File "<pyshell#64>", line 1, in <module>
    [elem] = "abc"
ValueError: too many values to unpack

这是因为您尝试将三个元素('a'、'b'、'c')解压为一个元素 elem

如果你这样做,问题就会消失

>>> [a, b, c] = "abc"
>>> print a, b, c
a b c

关于python - 将字典值转换为值列表 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17817123/

相关文章:

python - 使用 Python 将 .arff 文件转换为 .csv

python - 如何将字符串与多个正则表达式匹配?

ios - 字典是 Xcode 中的假定集合(数组)吗?

python - 如何合并两个Python字典?

python,将字典拆分为元组列表

python - win7上python3.2和pyodbc在SQL Server 2008 R2上建表出错

python - 将代码从 vim 发送到外部应用程序以执行

.net - 继承自 List(of T) 类的问题

c# - 按 id 对 List<T> 中的对象进行分组,并按每个对象的 duplicateCount 对列表进行排序

python - 使用列表理解 Python 创建新列