Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在循环[python]中的每个索引元素中累积和?_Python_List_Dictionary - Fatal编程技术网

如何在循环[python]中的每个索引元素中累积和?

如何在循环[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,

循环遍历数字列表。我需要使用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,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之后是否需要逗号?我不懂这段代码不,你不需要逗号。它是一个嵌套列表。