簡體   English   中英

如何在python列表中附加字段值並忽略None值

[英]how to append fields values in python list and ignore None value

我需要計算某些字段值的平均值,而忽略不計任何值,這就是我能做的

@api.multi
def update_bar(self):
    list=[self.item.pro, self.drc.pro, self.dsc.pro, self.org.pro, 
          self.car.pro, self.model.pro, self.year.pro]
    for rec in list:
        if rec:
            self.new_list = list.append(rec)
    print(self.new_list)
    pass

我會使用列表理解

def average_or_none(ls):
    temp = [x for x in ls if x is not None]

    if temp:
        return sum(temp) / len(temp)
    else:
        return None 

您可以從列表中過濾None值,然后進一步進行常規的求和/平均值計算。 讓我們過濾掉None如下所示:

list=[self.item.pro, self.drc.pro, self.dsc.pro, self.org.pro, 
          self.car.pro, self.model.pro, self.year.pro]
list_without_none = [x for x in list if x is not None]

要計算平均值 ,假設您具有如下所示的值。

# Python program to get average of a list 
def Average(lst): 
    return sum(lst) / len(lst) 

# Driver Code 
list_without_none = [15, 9, 55, 41, 35, 20, 62, 49] 
average = Average(list_without_none) 
print(average)

查看更多 演示的

您可以隨時使用過濾器功能。 下面的例子。 結果,您將獲得第一個列表,但沒有篩選出。

new_list = filter(lambda x: x is not None, list)
mean = sum(new_list)/len(new_list)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM