【问题标题】:Convert string to list within list of dictionaries in python将字符串转换为python中字典列表中的列表
【发布时间】:2020-09-17 07:08:50
【问题描述】:

我目前有一个这样的字典列表:

[ {'id': 'ABBA', 'num': '10 3 5 1'}, {'id': 'ABAC', 'num': '4 5 6 20'}]

如何将与 num 键关联的值从字符串更改为列表并在字典列表中迭代?像这样:

[ {'id': 'ABBA', 'num': ['10','3','5','1']}, {'id': 'ABAC', 'num': ['4', '5', '6' '20']}]

我知道关于如何遍历字典列表并将字符串更改为列表有类似的问题,但我似乎无法将所有这些放在一起。

我试过了:

for i in list_of_dictionaries:
    for id, num in i.items():
        for val in num:
            val = val.split()
            print(val)
print(list_of_dictionaries)

但我得到 [] 的 val 然后返回相同的未更改的字典列表。

【问题讨论】:

  • 真的是字典列表???
  • 对不起,我意识到我在输入简化示例时犯了一个错误。它应该是 [{stuff},{stuff}] 并且数字周围应该有括号来表示我想要得到的列表: num: ['10','3','5','1'] . 已编辑 这样更好吗?我可以发布实际代码,但它很长。

标签: python string list dictionary


【解决方案1】:

请检查sn-p

a=[ {'id': 'ABBA', 'num': '10 3 5 1'}, {'id': 'ABAC', 'num': '4 5 6 20'}]
for i in a:
    i['num']=i['num'].split(' ')
#[{'id': 'ABBA', 'num': ['10', '3', '5', '1']}, {'id': 'ABAC', 'num': ['4', '5', '6', '20']}]

【讨论】:

    【解决方案2】:

    改用这个:

    for i in list_of_dictionaries:
        val = i['num'].split()
        print(val)
        i['num'] = val
    print(list_of_dictionaries)
    

    顺便注意字典的字符串键应该在引号内。

    正如您所见,当您使用 i 变量迭代 list_of_dictionaries 时更新 i['num'] 的值,会更改主列表。因此,您无需每次都创建新列表并追加新项目。

    【讨论】:

    • 感谢您的澄清!我是 Python 新手,仍然不习惯这种语法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 2019-07-31
    • 2019-02-10
    • 2018-04-24
    • 2016-12-05
    相关资源
    最近更新 更多