0
에 올바르게 목록에 사전을 추가,하지만 난 이상한 문제가 발생하기 :어떻게 여러 사전을 포함하는 목록을 생성 할 파이썬
for i in xrange(0, len(merchant_id_list)):
for j in xrange(count, count + int(product_list_size[i])):
unit_price = get_unit_price_by_id(merchant_id_list[i], product_id_list[j])
product['id'] = product_id_list[j]
product['quantity'] = quantity_list[j]
product['price'] = unit_price
product_id.append(product)
print i
print merchant_id_list[i]
compound_data['id'] = merchant_id_list[i]
compound_data['product_id'] = product_id
merchant.append(compound_data)
print merchant
count += int(product_list_size[i])
내가 목록을 얻으려면은 다음과 같습니다
[
{
"id":1,
"product_id":[
{
"id":1,
"quantity": 3,
"price": 11
},
{
"id":2,
"quantity": 2,
"price": 12
}
]
},
{
"id":2,
"product_id":[
{
"id":16,
"quantity": 2,
"price": 22.22
}
]
그러나 마침내는 다음과 같습니다
[
{
"id":2,
"product_id":[
{
"id":16,
"quantity": 2,
"price": 22.22
},
{
"id":2,
"product_id":[
{
"id":16,
"quantity": 2,
"price": 22.22
}
]
그것은 마지막 요소는 모든 홍보를 오버라이드 (override)하는 것을 본다 명백한 사전. 변수 'i'와 'merchant_id_list'를 인쇄 했으니 괜찮습니다. 그것을 고치는 방법? 감사합니다
표시된 질문은 당신이 겪고있는 동일한 문제입니다 - 그것은 중요하지 않습니다 하위 목록이나 사전을 목록에 저장하든 상관없이 어떤 종류의 변경 가능한 개체 일뿐입니다. 해결책은 다르지만 원칙은 동일합니다. 목록에 넣을 각 항목에 대해 * 별개의 개체 *를 만들어야합니다. –