使用 for 循环通过 map 和 zip 计算 Python 中元组列表的平均值

Using a for loop to calculate the mean of a list of tuples in Python with map and zip

我正在阅读有关线程中问题的答案:

虽然答案对我有帮助,但我需要质疑如何完成我未成功尝试的事情。

我的代码是:

`vacc_counties = [ ("Pulaski", 42.7), ("Benton", 41.4), ("Fulton", 22.1), ("Miller", 9.6), ("Mississippi", 29.4), ("Scott County", 28.1), ]

data = map(list, zip(*vacc_counties))

for i in data:

print(i)`

我已经获得了这两个列表:

['Pulaski', 'Benton', 'Fulton', 'Miller', 'Mississippi', 'Scott County']

[42.7, 41.4, 22.1, 9.6, 29.4, 28.1]

但现在我的问题是我不知道如何将它们存储在 2 个变量中,以便之后计算平均值。

我试过类似这样的东西,还有很多其他的东西:

i0=[]

i1=[]

for i in data:

if i==0:

i0.append(i)

else:

i1.append(i)

print(i0)

print(i1)

但是结果很奇怪——第一个空白列表,加上一个列表到另一个列表[[..]],对于元组的第二个元素,一个列表里面有两个列表,所以我想我不不知道我在做什么:

[]

[['Pulaski', 'Benton', 'Fulton', 'Miller', 'Mississippi', 'Scott County']]

[]

[['Pulaski', 'Benton', 'Fulton', 'Miller', 'Mississippi', 'Scott County'], [42.7, 41.4, 22.1, 9.6, 29.4, 28.1]]

如果有人能完成这段求平均值的代码,并解释一下为什么会得到这个奇怪的结果,我将不胜感激,因为我真的迷路了。

提前谢谢你。

您可以将 map 函数的结果直接分配给变量,并将其用于进一步的计算。

尝试以下解决方案:

vacc_counties = [ ("Pulaski", 42.7), ("Benton", 41.4), ("Fulton", 22.1), ("Miller", 9.6), ("Mississippi", 29.4), ("Scott County", 28.1), ]

data = list(map(list, zip(*vacc_counties)))
cntryNames,cntryValues = data

print(cntryNames)
print(cntryValues)

现在您可以在此列表上应用您的计算。