将多个元素添加到列表中的字典并在每次添加元素时附加字典

Adding multiple elements to dictionary inside the list and appending the dictionary every time and element is added

brand = [1,2,3]

考虑这是我要添加到下面词典列表中的列表

r = [{'time':1,
     'id':1
     'region':[{brand:1}]}]

每次添加元素时,我都希望字典在列表示例中创建新字典:

r = [{'time':1,
     'id':1
     'region':[{brand:1},
    {'time':1,
     'id':1
     'region':[{brand:2}]
     {'time':1,
     'id':1
     'region':[{brand:3}]}

我是 python 的新手,不知道该怎么做。提前致谢

这应该有效:

l = [1,2,3]
r = []
for i in l:
  new_dict = {'time':1, 'id':1, 'region':[{"brand":i}]}
  r.append(new_dict)

输出:

[{'id': 1, 'region': [{'brand': 1}], 'time': 1},
 {'id': 1, 'region': [{'brand': 2}], 'time': 1},
 {'id': 1, 'region': [{'brand': 3}], 'time': 1}]

编辑 在评论中解决您的问题:请记住,这将始终适用于 brandtime相同的长度。

brand = [1,2,3]
time = [1,2,3]
r = []
for i in range(len(l)):
  new_dict = {'time':time[i], 'id':1, 'region':[{"brand":brand[i]}]}
  r.append(new_dict)

这应该也有效:

brand = [1,2,3]
r = list()
for i in brand:
    r.append(dict(time=1, id=1, region=[dict(brand=i)]))

输出:

[{'time': 1, 'id': 1, 'region': [{'brand': 1}]},
{'time': 1, 'id': 1, 'region': [{'brand': 2}]},
{'time': 1, 'id': 1, 'region': [{'brand': 3}]}]

如果需要,您可以设置 'time' 和 'id' 的值,就像 'region':

brand = [1,2,3]
r = list()
for i in brand:
    r.append(dict(time=i, id=i, region=[dict(brand=i)]))

你也可以这样做:

brand = [1, 2, 3]
r = [{'time': 1, 'id': 1, 'region':[{"brand": i}]} for i in brand]