Skip to main content
 首页 » 编程设计

python之在 Python 中从列表中的列表创建总和

2025年05月04日10kuangbin

我不太清楚怎么问这个问题,而且我对编程也不是很有经验,所以你必须原谅我。无论如何,我有一个问题。基本上,我需要得出一些数字的总和以及平均值。

程序应该有用户输入值。他们输入一个月和与该月相关的数字,然后我需要得到平均值。所以我有一个大列表,然后在该列表中列出。它基本上看起来像这样:

    months = [["January", 3.45], ["February", 7.1865], ["March", 4.56]] 

我想知道的是,如何在每个列表中挑出第二个元素? 我在想我可以使用 for 循环并将数字编译到一个单独的列表中,但我试过了,但无法正确计算。

请您参考如下方法:

不妨将其作为答案而不是评论。 zip 函数有点像 zipper ,将匹配的元素组合在一起:

>>> zip([1,2,3],[4,5,6]) 
<zip object at 0xb6e5beec> 
>>> list(zip([1,2,3],[4,5,6])) 
[(1, 4), (2, 5), (3, 6)] 

使用 * 运算符,它基本上将 f(*[a,b]) 转换为 f(a,b),我们可以倒退:

>>> list(zip(*(zip([1,2,3],[4,5,6])))) 
[(1, 2, 3), (4, 5, 6)] 

因此我们可以使用 zip 来拆分您的列表:

>>> list(zip(*months)) 
[('January', 'February', 'March'), (3.45, 7.1865, 4.56)] 
>>> monthnames, numbers = zip(*months) 
>>> monthnames 
('January', 'February', 'March') 
>>> numbers 
(3.45, 7.1865, 4.56) 

如果您只关心其中一个,这会有点低效,但这是一个需要熟悉的有用习惯用法。