[英]Loop through list of lists in Python and sum up all index 1, then all index 2 etc
一直试图找出一种方法来总结 Python 中列表列表中的每个索引。 例如这样的列表列表:
carbon_dioxide = ([" ", "1990", "1991", "1992"], ["factories", "100", "101", "102"], ["food industry", "50", "51", "52"], ["transports", "25", "26", "27"])
我想排除第一个列表,然后将列表 2(“100”)中的索引 1 与列表 3(“50”)和 4(“25”)中的索引 1 相加。
然后我希望迭代继续并总结所有列表中的索引 2。
我不想导入任何模块,只想导入纯代码,因为我是一个试图掌握基础知识的初学者。 我尝试了不同的解决方案,但没有。 例如这个,但它给了我除了 list[0] 之外的整个列表列表:
for i in range(1, len(carbon_dioxide)):
print(carbon_dioxide[i])
你有什么想法? 谢谢!
如果我没记错的话,听起来你想每年增加二氧化碳水平。 一个更易于消化的 output 可能是一本字典,其中您有一年到(二氧化碳水平总和)的映射。
year_nums = zip(*(c[1:] for c in carbon_dioxide)) # gives us a year and all the CO2 levels
output = {yn[0]: sum(map(int, yn[1:])) for yn in year_nums}
print(output)
>> {'1990': 175, '1991': 178, '1992': 181}
我不确定那是你要找的东西,仍然:
carbon_dioxide = ([" ", "1990", "1991", "1992"], ["factories", "100", "101", "102"], ["food industry", "50", "51", "52"], ["transports", "25", "26", "27"])
for k in range(1,4):
for i in range(1, len(carbon_dioxide)):
for j in range(i+1,len(carbon_dioxide)):
carbon_dioxide[i][k] = int(carbon_dioxide[i][k]) + int(carbon_dioxide[j][k])
print(carbon_dioxide)
Output:
([' ', '1990', '1991', '1992'], ['factories', 175, '101', '102'], ['food industry', 75, '51', '52'], ['transports', '25', '26', '27'])
([' ', '1990', '1991', '1992'], ['factories', 175, 178, '102'], ['food industry', 75, 77, '52'], ['transports', '25', '26', '27'])
([' ', '1990', '1991', '1992'], ['factories', 175, 178, 181], ['food industry', 75, 77, 79], ['transports', '25', '26', '27'])
添加到您的开始。
results = [0]*(len(carbon_dioxide[0])-1) # Initialize array for results
# with all zeros
for sublist in carbon_dioxide[1:]: # skips 1st sublist in crbon_dioxide
for index, v in enumerate(sublist[1:]): # skips first item in each sublist
# i.e. skips "", "factories", etc.
results[index] += int(v) # Add to result at index 'index'
print(results) # [175, 178, 181]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.