Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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_Accumulate - Fatal编程技术网

Python列表累积

Python列表累积,python,list,accumulate,Python,List,Accumulate,因此,下面的代码读取两个文本文件,这两个文件在25行上都包含25个整数,并将它们放在两个相应的列表中: num_DIR = '/path/to/num.txt' den_DIR = '/path/to/den.txt' def makeList(DIR): list = [] for line in open(DIR).readlines(): list.append(line.strip()) return list num_list = m

因此,下面的代码读取两个文本文件,这两个文件在25行上都包含25个整数,并将它们放在两个相应的列表中:

num_DIR = '/path/to/num.txt'
den_DIR = '/path/to/den.txt'

def makeList(DIR):
    list = []
    for line in open(DIR).readlines():
            list.append(line.strip())
    return list

num_list = makeList(num_DIR)
den_list = makeList(den_DIR)
输出:

num_list = ['76539', '100441', '108637', '108874', '103580', '91869', '78458', '61955', '46100', '32701', '21111', '13577', '7747', '4455', '2309', '1192', '554', '264', '134', '63', '28', '15', '12', '7', '5']

den_list = ['621266', '496647', '436229', '394595', '353249', '305882', '253983', '199455', '147380', '102872', '67255', '41934', '24506', '13778', '7179', '3646', '1778', '816', '436', '217', '114', '74', '49', '44', '26']

如何使两个列表中的每个值都成为其后面所有值的总和,就像在累加列表中一样?

如果性能不重要,您还可以使用
sum
和列表理解:

>>> num_list=[1,2,3]
>>> [sum(num_list[:y]) for y in range(1, len(num_list) + 1)]
[1, 3, 6]

如果性能不重要,您还可以使用
sum
和列表理解:

>>> num_list=[1,2,3]
>>> [sum(num_list[:y]) for y in range(1, len(num_list) + 1)]
[1, 3, 6]

如果您运行的是Python3.2或更高版本,则中包含电池

如果您运行的是之前的版本,则文档中提供的纯python等效版本可以等效工作(尽管不是C速度):

演示:


请注意,如果您运行的是python 3.2或更高版本,则需要将所有这些字符串转换为
int
s,就像我对
map

所做的那样

如果您运行的是之前的版本,则文档中提供的纯python等效版本可以等效工作(尽管不是C速度):

演示:


请注意,您需要将所有这些字符串转换为
int
s,就像我对
map

所做的那样,您似乎希望所有值的总和都位于每个元素之后的列表末尾

summed=[]
den_list = map(int,den_list)
for i,j in enumerate(den_list[:-1]):
    summed += j,sum(den_list[i+1:])
如果不想在列表中保留原始值

summed=[sum(num_list[i+1:])for i,j in enumerate(num_list[:-1])]

您似乎希望所有值的总和位于每个元素之后的列表末尾

summed=[]
den_list = map(int,den_list)
for i,j in enumerate(den_list[:-1]):
    summed += j,sum(den_list[i+1:])
如果不想在列表中保留原始值

summed=[sum(num_list[i+1:])for i,j in enumerate(num_list[:-1])]

哪一个python版本?您似乎没有朝这个方向做任何努力;这不是一个代码编写服务。首先,你应该使用整数而不是字符串。你真的希望每个值都是它后面的所有值的总和,而不是之前的值,就像
['1','2','3']
->
['6','5','3']
?哪个python版本?你似乎没有在这方面做出任何努力;这不是一个代码编写服务。首先,你应该使用整数而不是字符串。你真的希望每个值都是它后面的所有值的总和,而不是之前的值,就像在
['1','2','3']
->
['6','5','3']
中一样。总结列表理解正是我需要的!不用担心,不客气。总结列表正是我所需要的!不用担心,不客气。