首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将两个复杂字典列表转换为一个字典

将两个复杂字典列表转换为一个字典
EN

Stack Overflow用户
提问于 2022-11-17 13:21:13
回答 1查看 37关注 0票数 0

假设我有两个字典列表如下:

代码语言:javascript
复制
  all=[]
  lis1={
    'code':'matata',
    'commandes':[
        {
            'date':'12-10-22',
            'content':[
                {
                    'article':'Article1',
                    'designation':'Designe1',
                    'quantity':5
                }
            ]
         }
      ]
    }
 
 lis2={
     'code':'fropm',
     'commandes':[
       {
        'date':'04-08-21',
        'content':[
            {
                'article':'Article2',
                'designation':'Designe2',
                'quantity':3
            }
         ]
       }
     ]
   }

现在我在列表中添加了我的两本字典

代码语言:javascript
复制
all.append(list1)
all.append(liste2)

要将[..]{..}中替换为单个列表,我们可以执行all[0],但是在添加两个列表然后执行all[0]之后,我们只有第一个列表,其方括号被{..}替换的[..],我希望有这个呈现{ {...}, {...} }

这个是可能的吗??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-17 14:53:25

你需要改进你想要完成的事情。lis1是一个白痴,而不是一个列表。lis1['commandes']是一个包含单个dict的列表,但在一般情况下它可能有更多。其中每一个都有一个键"date"和另一个键"content",这又是一个字典列表.

一个任意的例子是将commandeslis2添加到lis1中的

代码语言:javascript
复制
lis1['commandes'].extend(  lis2['commandes'] )

它使用list .extend()方法连接两个列表。它应该屈服

代码语言:javascript
复制
{
'code':'matata',
'commandes':[
    {
        'date':'12-10-22',
        'content':[
            {
                'article':'Article1',
                'designation':'Designe1',
                'quantity':5
            }
        ]
     },
     {
        'date':'04-08-21',
        'content':[
            {
                'article':'Article2',
                'designation':'Designe2',
                'quantity':3
            }
        ]
     }
  ]
}

“向下钻取”只是提供数组索引和适当的切分键的问题。例如,

代码语言:javascript
复制
lis1['commandes'][0]['content'][0]['quantity']

会是5岁。

在对评论的答复中添加:

建造这种结构是一步一步的。请记住,在Python中,赋值是名称绑定。因此,引用列表和词典的名称很像其他语言中的指针。您可以更改内存中引用的对象(如果它们是可变的,那么列表和dicts是可变的)。

所以,就像:

代码语言:javascript
复制
lis = {}
lis['code'] = 'example'
lis['commandes'] = []
for foo in something:
    lis['commandes'] .append( build_command( foo))

...
def build_command(foo):
    command = {}
    date = datetime.date.today()
    command['date'] = datetime.datetime.now().strftime('%d-%m-%y')
    command['content'] = []
    for # iterating over something ...
        content = {}
        content['article'] =  
        content['designation'] =
        content['quantity'] =

        command['content'].append( content)
    return command
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74476197

复制
相关文章

相似问题

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