如何在字典列表中拆分字符串值,以便拆分字符串的每个部分都在其自己的字典中?

例如:

lst = [{item:'321,121,343','name':'abby','amount':'400'},{item:'111,222,333','name':'chris','amount':'500'}]

我希望项目键值对的每个部分都在其自己的字典中

Desired_List = [{item:'321','name':'abby','amount':'400'},{item:'121','name':'abby','amount':'400'},{item:'343','name':'abby','amount':'400'},{item:'111','name':'chris','amount':'500'},{item:'222','name':'chris','amount':'500'},{item:'333','name':'chris','amount':'500'}]

我没有运气尝试过这个:

[li.update({li['item']:spl}) for li in lst for spl in li['item'].split(',')]
return Li

===============>>#1 票数:1 已采纳

def unpack_dict(d, field, unpack):
    packed = d.pop(field)
    for item in unpack(packed):
        result = d.copy()
        result[field] = item
        yield result

lst = [
    {'item':'321,121,343','name':'abby','amount':'400'},
    {'item':'111,222,333','name':'chris','amount':'500'}
]

new_lst = [
    ud
    for d in lst
    for ud in unpack_dict(d, "item", lambda item: item.split(","))
]

给出new_lst =

[
    {'amount': '400', 'item': '321', 'name': 'abby'},
    {'amount': '400', 'item': '121', 'name': 'abby'},
    {'amount': '400', 'item': '343', 'name': 'abby'},
    {'amount': '500', 'item': '111', 'name': 'chris'},
    {'amount': '500', 'item': '222', 'name': 'chris'},
    {'amount': '500', 'item': '333', 'name': 'chris'}
]

===============>>#2 票数:0

这是一个工作脚本:

lst = [{'item':'321,121,343','name':'abby','amount':'400'}, {'item':'321,121,343','name':'chris','amount':'500'}]

new_list = [{'item':j, 'name': i['name'], 'amount': i['amount']} for i in lst for j in i['item'].split(',')]

>>> print new_list
[{item:'321','name':'abby','amount':'400'},{item:'121','name':'abby','amount':'400'},{item:'343','name':'abby','amount':'400'},{item:'111','name':'chris','amount':'500'},{item:'222','name':'chris','amount':'500'},{item:'333','name':'chris','amount':'500'}]

演示: http//repl.it/RaE

  ask by Chris translate from so

未解决问题?本站智能推荐:

1回复

Python-如何在每个字典值中串联字符串,其中值是字符串列表

从一个包含产品行项目(以MDX查询格式嵌入)和产品类别代码的Pandas数据帧df3pa中,我有一个字典uni3pa其中产品类别代码Code为字典keys ,并且有一个字符串Item (以MDX格式)作为values uni3pa的片段: 我得到的最终结果是,使用'+'连接每个k
2回复

拆分字典字符串值-Python

我有四种类型:AAA,BBB,CCC和FUN。 我正在编写一个函数,该函数将以两个成对的形式接收这些类型的字典作为字符串。 (该词典将仅包含3个随机配对,即: 我需要对各种配对运行计算,但是在读取字符串键时遇到了麻烦... 首要问题: 一个问题是我可以收到"FUN-AAA
2回复

如何在列表中的字典字符串中搜索单词?

这是我当前的代码,但是当我为列表中的每个元素运行它时,它将打印“未找到结果”,如果存在,它将打印该结果。 我希望它打印那里的结果,或者只是没有找到结果。
2回复

字典中列表的字符串值总和

我在导出字符串值的总和时遇到麻烦。 如果有整数形式,我可以生成以下内容: 如果我使用sums = {k: sum(i for i in v if isinstance(i, int)) for k, v in size.items()} ,我将能够获得诸如{'serverA': 20,
2回复

使用字典切出列表中的部分字符串

我有一长串使用Python 3中的Beautiful Soup生成的列表。 现在,该列表已生成。 这是一个网络抓取的事情,但是只知道它会返回一个列表。 并以列表的形式返回以下结果: '目录/分类/书籍/ travel_2 / index.html的', '目
1回复

如何使用字典操作字符串中每个元素的列表?

我有一个清单和一个字典: 我希望扫描列表,并且即使字符串为C2C3C4C5,如果字符串中弹出C2C4,因为它包含C2 和 C4,我希望它在列表中转为1。 如果C3出现在任何字符串中,那么对于C3可以说相同,那么我希望它在列表中变成1,而当C3在C3C4C5中出现时,它也应该变成1,即得
3回复

在字典列表中的列表中搜索字符串

我正在尝试确定搜索字典键值的最佳方法。 我似乎找不到能够允许我在列表列表中搜索特定字符串的函数。 我正在尝试让该程序显示采用某种班级类型的学期。 即输入“ ENGR”并返回它显示在“ fall14”,“ fall15”和“ spring16”中。 有人可以为我指出从列表中的列
2回复

如何将字典中的字符串值转换为python中的列表?

我正在尝试从具有以下内容的文件中读取内容 我必须将其读作以下格式的字典。 以下应该是我的最终输出 - 但我设法以下面的格式将其作为字典阅读。 但这些值不是列表格式。 电流输出 有人可以帮助将值转换为列表或直接从文件中将其作为列表读取吗?
3回复

将字符串追加到字典列表中的特定值-Python

这是我的字典清单 我想将node-作为前缀附加到key node_name的value 。 我希望输出如下所示 任何帮助深表感谢。
2回复

遍历字典中列表中的字符串

我有一个字典,里面满是名为“可能”的列表,键为“ a”-“ z”。 每个键都有一个列表值,其中带有“ a”至“ z”。 本质上是26个字母。 我将字符串清除为小写字母,然后删除标点符号,并将每个单词保存到名为“ cleanedWords”的列表中。 我想浏览一下列表,如果列表中的