首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在键值列表中为每个用户复制字典

在键值列表中为每个用户复制字典
EN

Stack Overflow用户
提问于 2016-03-16 15:13:18
回答 2查看 37关注 0票数 0

我在Python中有一本字典,如下所示:

代码语言:javascript
复制
dicts = [{'uid':'12345', 'markets':'['UK', 'US']'},
         {'uid':'55644', 'markets':'['IN', 'SG', 'IE']'}]

我真正需要的是为“市场”列表中的每一项,为词典列表中的每一本词典制作的任何词典的副本。应该是这样的:

代码语言:javascript
复制
dicts = [{'uid':'12345', 'markets':'['UK']'},
         {'uid':'12345', 'markets':'['US']'},
         {'uid':'55644', 'markets':'['IN']'},
         {'uid':'55644', 'markets':'['IE']'},
         {'uid':'55644', 'markets':'['SG']'}]

有人能帮我理解Python中解决这个问题的最佳方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-16 15:21:17

下面的代码将创建一个字典列表:

代码语言:javascript
复制
dicts = [{'uid':'12345', 'markets':['UK', 'US']},
         {'uid':'55644', 'markets':['IN', 'SG', 'IE']}]

def flatten(lists):
    res = []
    for d in lists:
        for market in d['markets']:
            res.append({'uid': d['uid'], 'markets': [market]})

    return res

print flatten(dicts)

# [{'markets': ['UK'], 'uid': '12345'}, {'markets': ['US'], 'uid': '12345'},
#  {'markets': ['IN'], 'uid': '55644'}, {'markets': ['SG'], 'uid': '55644'},   
#  {'markets': ['IE'], 'uid': '55644'}]

代码将遍历原始列表中的字典。对于每个字典,代码将在市场上迭代,对于每个市场,它将为结果列表添加一个新字典。除了print之外,该代码将同时在Python2和Python3上工作。

票数 2
EN

Stack Overflow用户

发布于 2016-03-16 15:23:28

您可以(python 3)尝试:

代码语言:javascript
复制
dicts = [{'uid':'12345', 'markets':['UK', 'US']},
         {'uid':'55644', 'markets':['IN', 'SG', 'IE']}]


def _split_dict(dict_):
    for country in dict_["markets"]:
        yield {'markets': [country], 'uid': dict_['uid']}


def split_dicts(dicts):
    for dict_ in dicts:
        yield from _split_dict(dict_)


print(list(split_dicts(dicts)))
# [{'uid': '12345', 'markets': ['UK']}, {'uid': '12345', 'markets': ['US']}, {'uid': '55644', 'markets': ['IN']}, {'uid': '55644', 'markets': ['SG']}, {'uid': '55644', 'markets': ['IE']}]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36039723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档