如何在循环[python]中的每个索引元素中累积和?
循环遍历数字列表。我需要使用map来累加另一个列表的元素[0]中所有元素[0]的和,以及元素[1]中所有元素[1]的和如何在循环[python]中的每个索引元素中累积和?,python,list,dictionary,Python,List,Dictionary,循环遍历数字列表。我需要使用map来累加另一个列表的元素[0]中所有元素[0]的和,以及元素[1]中所有元素[1]的和 result_list = [] sub1 = sub2 = sub3 = 0 #these 3 should be only indexes 0,1,2 of list above for item in r: l = item.split(';') # originally l = '34;56;78' q = list(map(float,
result_list = []
sub1 = sub2 = sub3 = 0 #these 3 should be only indexes 0,1,2 of list above
for item in r:
l = item.split(';') # originally l = '34;56;78'
q = list(map(float,l)) # q is the list of 3 elements
#instead of code below I want to have smth like
# result_list = list(map( sum( q(item), result_list)
sub1 += q[0]
sub2 += q[1]
sub3 += q[2]
输入:
l = [['1;2;3'], ['10;20;30'], ['12;34;56']]
结果列表必须将每个列表中所有元素[0]的总和聚合到结果列表[0]。
输出
r就是这个,我省略了名称并计算每个“列”的平均值
Bawerman;55;79;50
Baldwin;83;62;72
Owen;94;86;65
Watson;92;79;100
Clifford;33;99;47
Murphy;94;87;53
Shorter;83;61;61
Bishop;27;89;41
oneliner可以完成以下任务: 如果需要首先用数字解析字符串:
l = [[int(i) for i in e[0].split(';')] for e in l]
在那之后,只要:
result = map(sum, zip(*l))
oneliner可以完成以下任务: 如果需要首先用数字解析字符串:
l = [[int(i) for i in e[0].split(';')] for e in l]
在那之后,只要:
result = map(sum, zip(*l))
您可以这样做,假设
l
的每个元素都是一个字符串列表:
l = [['1;2;3'], ['10;20;30'], ['12;34;56']]
numbers = (map(float, e.split(';')) for e, in l)
result = [sum(n) for n in zip(*numbers)]
print(result)
输出
[23.0, 56.0, 89.0]
您可以这样做,假设
l
的每个元素都是一个字符串列表:
l = [['1;2;3'], ['10;20;30'], ['12;34;56']]
numbers = (map(float, e.split(';')) for e, in l)
result = [sum(n) for n in zip(*numbers)]
print(result)
输出
[23.0, 56.0, 89.0]
这是一种方法
Ex:
l = [["1;2;3"], ["10;20;30"], ["12;34;56"]]
result_list = []
l = [list(map(float, j.split(";"))) for i in l for j in i]
for i in zip(*l):
result_list.append(sum(i))
print(result_list)
[23.0, 56.0, 89.0]
输出:
l = [["1;2;3"], ["10;20;30"], ["12;34;56"]]
result_list = []
l = [list(map(float, j.split(";"))) for i in l for j in i]
for i in zip(*l):
result_list.append(sum(i))
print(result_list)
[23.0, 56.0, 89.0]
这是一种方法
Ex:
l = [["1;2;3"], ["10;20;30"], ["12;34;56"]]
result_list = []
l = [list(map(float, j.split(";"))) for i in l for j in i]
for i in zip(*l):
result_list.append(sum(i))
print(result_list)
[23.0, 56.0, 89.0]
输出:
l = [["1;2;3"], ["10;20;30"], ["12;34;56"]]
result_list = []
l = [list(map(float, j.split(";"))) for i in l for j in i]
for i in zip(*l):
result_list.append(sum(i))
print(result_list)
[23.0, 56.0, 89.0]
+ +
我省略名称并计算每个“列”的平均值
您不需要从数据中构建一个大的列表列表。您可以使用迭代器并使用序列解包和zip
。要计算平均值,可以使用统计。平均值:
from io import StringIO
from statistics import mean
import csv
x = StringIO("""Bawerman;55;79;50
Baldwin;83;62;72
Owen;94;86;65
Watson;92;79;100
Clifford;33;99;47
Murphy;94;87;53
Shorter;83;61;61
Bishop;27;89;41""")
# replace x with open('file.csv', 'r')
with x as fin:
reader = csv.reader(x, delimiter=';')
zipper = zip(*reader)
next(zipper) # ignore labels
res = [mean(map(float, x)) for x in zipper]
print(res)
# [70.125, 80.25, 61.125]
+ +
我省略名称并计算每个“列”的平均值
您不需要从数据中构建一个大的列表列表。您可以使用迭代器并使用序列解包和zip
。要计算平均值,可以使用统计。平均值:
from io import StringIO
from statistics import mean
import csv
x = StringIO("""Bawerman;55;79;50
Baldwin;83;62;72
Owen;94;86;65
Watson;92;79;100
Clifford;33;99;47
Murphy;94;87;53
Shorter;83;61;61
Bishop;27;89;41""")
# replace x with open('file.csv', 'r')
with x as fin:
reader = csv.reader(x, delimiter=';')
zipper = zip(*reader)
next(zipper) # ignore labels
res = [mean(map(float, x)) for x in zipper]
print(res)
# [70.125, 80.25, 61.125]
请添加输入、预期输出对您能指出r
是什么吗?@DanielMesejo,完成,先生,请看一看look@James,r是2d数组或字符串数组,我处理每个字符串l的内部元素是列表吗?请添加输入,预期输出对您能说明一下r
是什么吗?@DanielMesejo,完成了,先生,请看一看look@James,r是2d数组或字符串数组,我处理每个字符串l的内部元素是列表吗?谢谢,但是没有bug?还是打字错误?“对于e,在l中”-你需要逗号吗?是的,打开元素的包装谢谢你,但是没有bug吗?还是打字错误?“对于e,在l中”-你需要逗号吗?是的,要解包元素i在l中对于j在i中-你在l之后需要逗号吗?我不懂这段代码不,你不需要逗号。这是一个嵌套列表。对于l中的i,对于i中的j,在l之后是否需要逗号?我不懂这段代码不,你不需要逗号。它是一个嵌套列表。