无法理解平均年龄计算

时间:2014-08-24 13:45:06

标签: python append average

我是python的初学者。我正在阅读以下代码:

people = [ [ 'John', 42 ], [ 'James', 36 ], [ 'Sue', 38 ] ]  
ages = [] 
for person in people:     
     age = person[1]     
     ages.append(age)  

avg_age = sum(ages) / len(people)
print "Average age:", avg_age

问题:

  1. ages =[ ]是什么意思?
  2. age = people[1]是什么意思?
  3. ages.append(age)是什么意思?

4 个答案:

答案 0 :(得分:0)

如果直接在people展开子列表,您可能会发现它更有意义:

people = [ [ 'John', 42 ], [ 'James', 36 ], [ 'Sue', 38 ] ]  
ages = [] 
for person, age in people:  
     ages.append(age)  

avg_age = sum(ages) / len(people)
print "Average age:", avg_age

你可以使用list comprehension

people = [ [ 'John', 42 ], [ 'James', 36 ], [ 'Sue', 38 ] ]  
ages = [age for person, age in people] 

avg_age = sum(ages) / len(people)
print "Average age:", avg_age

由于您未在列表推导中使用person,因此您可以明确省略它:

people = [ [ 'John', 42 ], [ 'James', 36 ], [ 'Sue', 38 ] ]  
ages = [age for _, age in people] 

avg_age = sum(ages) / len(people)
print "Average age:", avg_age

最后,如果你将一个元素浮点数,你将获得更好的平均值。这是一种方式:

people = [ [ 'John', 42 ], [ 'James', 36 ], [ 'Sue', 38 ] ]  
ages = [age for _, age in people] 

avg_age = sum(ages) / float(len(people))
print "Average age:", avg_age

这是另一个:

people = [ [ 'John', 42 ], [ 'James', 36 ], [ 'Sue', 38 ] ]  
ages = [float(age) for _, age in people] 

avg_age = sum(ages) / len(people)
print "Average age:", avg_age

答案 1 :(得分:0)

ages=[]

表示您已创建名为ages的空列表。该列表中没有元素。

age=person[1]

是一个赋值,您可以将第一个元素的值分配给年龄。

ages.append(age)

将值年龄附加到年龄列表中。 现在,当您打印列表年龄时,您可以看到年龄的值附加到它。

ages=[]
ages.append(3)
ages.append(4)
print ages

将产生

的输出
[3,4]

答案 2 :(得分:0)

年龄= []是什么意思? 这是一个空列表,需要先创建才能插入值。

年龄=人[1]是什么意思? 这意味着只需要阅读字典中的第一个占位符。

ages.append(年龄)是什么意思? 这意味着将每个词典条目的年龄值放入年龄列表中。

答案 3 :(得分:0)

    ages =[ ] # creating an empty list
    age = people[1] # is assigning the value of first element of your list(people)
    ages.append(age) # you are adding the value of age to your second list (ages)

我建议你阅读python的基本教程,其中有一些示例,所以你可以自己练习并使用列表来理解它的不同方法的行为。