假设我有两个字典列表如下:
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
}
]
}
]
}现在我在列表中添加了我的两本字典
all.append(list1)
all.append(liste2)要将[..]在{..}中替换为单个列表,我们可以执行all[0],但是在添加两个列表然后执行all[0]之后,我们只有第一个列表,其方括号被{..}替换的[..],我希望有这个呈现{ {...}, {...} }
这个是可能的吗??
发布于 2022-11-17 14:53:25
你需要改进你想要完成的事情。lis1是一个白痴,而不是一个列表。lis1['commandes']是一个包含单个dict的列表,但在一般情况下它可能有更多。其中每一个都有一个键"date"和另一个键"content",这又是一个字典列表.
一个任意的例子是将commandes从lis2添加到lis1中的
lis1['commandes'].extend( lis2['commandes'] )它使用list .extend()方法连接两个列表。它应该屈服
{
'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
}
]
}
]
}“向下钻取”只是提供数组索引和适当的切分键的问题。例如,
lis1['commandes'][0]['content'][0]['quantity']会是5岁。
在对评论的答复中添加:
建造这种结构是一步一步的。请记住,在Python中,赋值是名称绑定。因此,引用列表和词典的名称很像其他语言中的指针。您可以更改内存中引用的对象(如果它们是可变的,那么列表和dicts是可变的)。
所以,就像:
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 commandhttps://stackoverflow.com/questions/74476197
复制相似问题