首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要在数组中复制dict数据

需要在数组中复制dict数据
EN

Stack Overflow用户
提问于 2022-07-31 12:39:06
回答 2查看 29关注 0票数 0
代码语言:javascript
复制
json_data = {"map":[{"name":"test"}]}


def replicator(data, replica=1):
    final_data = {}
    for each_map_tcs in data.keys():
        for each_tc in data[each_map_tcs]:
            for i in range(replica):
                if each_map_tcs not in final_data.keys():
                    final_data[each_map_tcs] = []

                final_data[each_map_tcs].append(each_tc)
                each_tc['name'] += '-' + str(i)

    print(final_data)   

replicator(json_data, 2)

实际输出:{'map':{'name':'test-01'},{'name':'test-01'}}

所需输出:{'map':{'name':'test-0'},{'name':‘test-1’}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-01 06:19:08

代码语言:javascript
复制
import copy

json_data = {"map":[{"name":"test"}]}


def replicator(data, replica=1):
    final_data = {}
    for each_map_tcs in data.keys():
        for each_tc in data[each_map_tcs]:
            for i in range(replica):
                if each_map_tcs not in final_data.keys():
                    final_data[each_map_tcs] = []

                tmp_dict = copy.deepcopy(each_tc)
                tmp_dict['name'] += '-' + str(i)
                final_data[each_map_tcs].append(tmp_dict)

    print(final_data)   

replicator(json_data, 2)
票数 0
EN

Stack Overflow用户

发布于 2022-07-31 14:28:09

看起来,您只是想要创建一个list-of-dicts,作为更大的dict的值。

列表部分可以用list comprehension创建,然后您可以将其合并到dict中,如下所示:

代码语言:javascript
复制
l = [{'name': 'test-0' + str(x)} for x in range(2)]
d = {'map':l}
print(d)

结果:

代码语言:javascript
复制
{'map': [{'name': 'test-00'}, {'name': 'test-01'}]}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73183373

复制
相关文章

相似问题

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