在嵌套列表的dict中插入一个值

2024-04-23 20:58:20 发布

您现在位置:Python中文网/ 问答频道 /正文

这里我想在嵌套列表的字典中插入一个值。 这就是我尝试过的

company_ids = [1,2,3]   
seller_ids = [[0, False, { u'company_id': 4}]]
result = []
for company in company_ids:
    for i in xrange(0, len(seller_ids)):
        seller_ids[i][2]['company_id'] = company
        result.append(seller_ids[i])
print result

我明白了

[[0, False, {u'company_id': 3}],
 [0, False, {u'company_id': 3}],
 [0, False, {u'company_id': 3}]]

但我期待着这个

[[0, False, {u'company_id': 1}],
 [0, False, {u'company_id': 2}],
 [0, False, {u'company_id': 3}]]

请帮我解决这个问题。提前谢谢。。。你知道吗


Tags: inidfalseids列表forlen字典
2条回答

您需要在卖家ID中创建要更改的条目的副本。就像niemmi说的,否则每次都要处理相同的条目。你知道吗

from copy import deepcopy

company_ids = [1,2,3]   
seller_ids = [[0, False, { u'company_id': 4}]]
result = []
for company in company_ids:
    for i in xrange(0, len(seller_ids)):
        mycopy = deepcopy(seller_ids[i])
        mycopy[2]['company_id'] = company
        result.append(mycopy)

print result

发生这种情况的原因是,您每次都会更改相同的列表[0, False, { u'company_id': 4}]并将其附加到result,因此最终它将包含对同一列表的三个引用,并进行了最新的修改。你知道吗

相关问题 更多 >