【问题标题】:Last value onlyadded to a list最后一个值仅添加到列表中
【发布时间】:2021-02-23 15:41:45
【问题描述】:

我在向列表中添加元素时遇到了一个问题

这是我的代码

def summary(request,):
    data = []
    values = {}
    fruits =  ['apple','mango','orange','grapes']
    for i in fruits:
        values['fruits'] = i
        values['count'] = calculating_count(i)
        data.append(values)

我的期望是我的数据列表需要像这样

data = [{'fruits':apple,'count':10},
        {'fruits':mango,'count':20},
        {'fruits':orange,'count':30},
        {'fruits':grapes,'count':40}]

但我得到它是什么

data = [{'fruits':grapes,'count':40},
        {'fruits':grapes,'count':40},
        {'fruits':grapes,'count':40},
        {'fruits':grapes,'count':40}]

只添加最后一个元素

【问题讨论】:

  • 您每次通过循环更新相同的dict。将values = {} 放入循环中。

标签: python django list dictionary


【解决方案1】:
def summary(request,):
    data = []
    fruits =  ['apple','mango','orange','grapes']
    for i in fruits:
        values = {}
        values['fruits'] = i
        values['count'] = calculating_count(i)
        data.append(values)

【讨论】:

    【解决方案2】:

    很简单,

    def summary(request, ):
        fruits = ['apple', 'mango', 'orange', 'grapes']
        result = [{"fruits": fruit, "count": calculating_count(fruit)} for fruit in fruits]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-15
      • 2020-05-28
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 2017-10-18
      • 1970-01-01
      相关资源
      最近更新 更多