相关疑难解决方法(0)

优雅的pythonic cumsum

实现cumsum的优雅和pythonic方式是什么?
或者 - 如果已经有一种内置的方式来做,那当然会更好......

python

19
推荐指数
3
解决办法
1万
查看次数

将列表拆分为不均匀的组?

我知道如何将列表拆分成偶数组,但我无法将其拆分为不均匀的组.

基本上这就是我所拥有的:一些列表,我们称之为mylist包含x元素的列表.

我还有另一个文件,我们称之为second_list,看起来像这样:

{2, 4, 5, 9, etc.}
Run Code Online (Sandbox Code Playgroud)

现在我想做的是mylist通过second_list中的间距划分为不均匀的组.所以,我希望我的第一组成为前两个元素mylist,第二组成为接下来的4个元素mylist,第三组成为接下来的5个元素mylist,第四组成为下一个9元素的"mylist",等等.

有一些简单的方法来做到这一点?如果你想将它分成偶数组,我尝试做类似的事情:

for j in range(0, len(second_list)):
    for i in range(0, len(mylist), second_list[j]):
        chunk_mylist = mylist[i:i+second_list[j]]
Run Code Online (Sandbox Code Playgroud)

然而,这不会像我想要的那样分裂它.我想用我的#子列表是的,结束了len(second_list),也正常分裂,这给比这更大量的(也是分裂不正确地).

python split list sublist python-2.7

13
推荐指数
4
解决办法
3094
查看次数

Python:部分数字和

你可以帮助我使用返回文本文件中部分数字总和的代码吗?我必须导入文本文件,然后在没有工具的情况下为部分总和制作代码..等等.

我的意见:

4
13
23
21
11
Run Code Online (Sandbox Code Playgroud)

输出应该是(没有括号或逗号):

4 
17
40
61 
72
Run Code Online (Sandbox Code Playgroud)

我试图在python中创建代码,但只能做总和而不是部分.如果我使用+=运算符生成器,​​它会给我一个错误!

python

6
推荐指数
4
解决办法
9070
查看次数

如何在Python中得到每一步“reduce”的结果?

在Python中,如果我想使用显式函数式编程来总结一个列表,我可以这样做

>>> import operator
>>> reduce(operator.add, [3, -1, 2])
4
Run Code Online (Sandbox Code Playgroud)

Mathematica 比 Python 更接近纯函数式语言,将其称为Fold而不是reduce,但结果是相同的。

In[1]:= Fold[Plus, {3, -1, 2}]
Out[1]= 4
Run Code Online (Sandbox Code Playgroud)

所以现在,在 Mathematica 中,如果我想在迭代过程中的每一步获得“折叠”的结果,我可以使用函数FoldList

In[2]:= FoldList[Plus, {3, -1, 2}]
Out[2]= {3, 2, 4}
Run Code Online (Sandbox Code Playgroud)

如何在 Python 中获取这样的列表(或者最好是迭代器)?一般来说,这个函数操作有名字吗?

python functional-programming

4
推荐指数
1
解决办法
1130
查看次数

将所有列表元素汇总到新列表

我有一个旧列表,我想将每个元素总结为一个新列表:

    lst_old = [1, 2, 3, 4, 5]
    lst_new = [1, 3, 6, 10, 15]
Run Code Online (Sandbox Code Playgroud)

有没有一种优雅的方法在Python 3中使用短代码和快速代码实现它?除了sum()打印最后一个元素,我无法找到适合我的问题的解决方案.

python list python-3.x

2
推荐指数
1
解决办法
93
查看次数

Python 将简单的整数列表转换为斐波那契数列

我有一个 int 元素列表。

我想将该列表更改为斐波那契数列序列。

data = [1,0,2,4,5]
output_data = [1,1,3,7,12]
Run Code Online (Sandbox Code Playgroud)

python python-3.x

2
推荐指数
1
解决办法
79
查看次数

Python在列表中运行总和

鉴于以下列表:

a=[1,2,3]
Run Code Online (Sandbox Code Playgroud)

我想生成一个新列表,其中每个数字是它和它之前的值的总和,如下所示:

result = [1,3,6]
Run Code Online (Sandbox Code Playgroud)

逻辑:

1没有先前的值,所以它保持不变.

3是从第一个值(1)加到列表中的第二个数字的值(2)

6是来自前两个元素的1和2的总和,加上3的第三个值.

提前致谢!

python numpy sum running-total cumulative-sum

1
推荐指数
2
解决办法
4205
查看次数

从列表中创建总和列表

我正在研究实验数据,我将温度曲线从45°C创建到5°C,然后再创建到45°C.绘制数据得到一个循环,因为记录从45°C冷却到5°C并从5°C加热到45°C.但由于我需要按照时间顺序显示每个温度需要独特的情节.

图像显示了我需要的视觉解释. 视觉解释

因此,我所做的是使用numpys"diff"函数从每个连续的温度区间获得差异.到现在为止还挺好.现在为了制作一个有用的图,我需要以某种方式创建一个新的列表,其中每个项目都是之前的总和.

我正在寻找的一个小例子:

my_list = [1,2,5,1,4,2,3]
#some operation
result_list = [1,3,8,9,13,15,18]
Run Code Online (Sandbox Code Playgroud)

如果有人知道如何做到这一点,或者有更聪明的想法如何完成工作,那将会很棒!

python numpy pandas

1
推荐指数
1
解决办法
50
查看次数

获取列表中各个部分的总和

我有一个清单,[0, 1, 2, 3, 4, 5, 6]并总结了各个部分,以便:

l = [0, 1, 2, 3, 4, 5, 6] -> 21

l = [1, 2, 3, 4, 5, 6] -> 21

l = [2, 3, 4, 5, 6] -> 20

l = [3, 4, 5, 6] -> 18

l = [4, 5, 6] -> 15

l = [5, 6] -> 11

l = [6] -> 6

l = [] -> 0
Run Code Online (Sandbox Code Playgroud)

因此,我得到了列表各部分的相应总和: [21, 21, 20, 18, 15, 11, 6, 0]

我使用的代码是: …

python list-comprehension list

1
推荐指数
2
解决办法
493
查看次数

在列表上执行数学运算(是否递归?)

假设我们有以下列表

lst = [3,6,1,4]
Run Code Online (Sandbox Code Playgroud)

我希望能够从此列表中获得以下结果

result = [4, 10, 11, 15]
Run Code Online (Sandbox Code Playgroud)

计算模式如下:

1 + 3 = 4

1 + 3 + 6 = 10

1 + 3 + 6 + 1 = 11

1 + 3 + 6 + 1 + 4 = 15

换句话说,结果是1加上输入数组的累加和。

如何定义一种可以解决此问题的功能?

python recursion list python-2.7

0
推荐指数
1
解决办法
92
查看次数

如何知道值所在的段

L = [('key1', 14), ('key2', 20), ('key3', 13), ('key4', 10), ('key5', 11)]
Run Code Online (Sandbox Code Playgroud)

假设我得到了list如上所述.每个元组的第二个元素在概念上表示块存储器的大小.这些块存储器是相邻的和顺序的.他们的关系可以表示为:

0 ____ 14 ____ 14 + 20 14 ____ + 20 + 13 14 ____ + 20 + 13 + 10 14 ____ + 20 + 13 + 10 + 11

现在用户将给我'绝对地址',我应该给他一个密钥来解密整个内存块.例如,如果他想访问地址'10',那么我应该为他返回key1.如果他想访问'15',那么我应该返回key2.

我的实现现在必须每次都从头开始搜索.实际上,有许多内存块,用户希望一直访问.表现不好.

L = [('key1', 14), ('key2', 20), ('key3', 13), ('key4', 10), ('key5', 11)]
def get_key(address):
    c = 0
    offset = 0
    for i in L:
        if address < i[1] + offset:
            break
        c …
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
84
查看次数

如何使用列表理解来计算总和

如何使用列表推导获得此列表的累积总和:

list_comp=[1,4,9,16] 
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的,但它会打印列表中每个项目的两倍

print([x+x for x in list_comp])
Run Code Online (Sandbox Code Playgroud)

我希望结果是:list_comp = [1,5,14,30]但是我得到了这个:

>> [2, 8, 18, 32]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension list python-3.x

0
推荐指数
1
解决办法
4096
查看次数