Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 - Fatal编程技术网

Python 根据符号更改创建列表

Python 根据符号更改创建列表,python,Python,我在一列中有excel数据(float),每几百行就有20个符号的变化。这个列表有几千行,但很简单,看起来像这样的[5,4,3,2,1,-5,-4,-3,-2,-1,5,4,3,2,1,-5,…] 我需要包含所有数字的列表,直到符号发生变化,然后开始一个新列表,直到下一个符号发生变化。所以总的来说,我希望返回的列表数量与符号更改的数量相同。我需要这些来做数值积分。不过我可以做到 你能给我举一个像上面这样的短数组的例子吗?我真的不在乎它是将reslut作为函数的返回还是定义新的变量。更容易或更优雅

我在一列中有excel数据(float),每几百行就有20个符号的变化。这个列表有几千行,但很简单,看起来像这样的
[5,4,3,2,1,-5,-4,-3,-2,-1,5,4,3,2,1,-5,…]

我需要包含所有数字的列表,直到符号发生变化,然后开始一个新列表,直到下一个符号发生变化。所以总的来说,我希望返回的列表数量与符号更改的数量相同。我需要这些来做数值积分。不过我可以做到

你能给我举一个像上面这样的短数组的例子吗?我真的不在乎它是将reslut作为函数的返回还是定义新的变量。更容易或更优雅的


谢谢你们的帮助

假设您想按符号分组,您可以使用:


@亚历山大很高兴我能帮上忙。如果我的答案对你有帮助,请考虑将它标记为略短(不一定更好):<代码> GROMPBY(LST,KEY=0。使用小数较少的csv文件是否更有效?拆分它并自己尝试多线程是否有意义?我有一个i7四核(第8代)没关系,我只会在excel中每隔一秒或第三行删除一行
from itertools import groupby

data = [5, 4, 3, 2, 1, -5, -4, -3, -2, -1, 5, 4, 3, 2, 1, -5]


def groupby_sign(lst):
    return [list(group) for _, group in groupby(lst, key=lambda x: x < 0)]

result = groupby_sign(data)
print(result)
[[5, 4, 3, 2, 1], [-5, -4, -3, -2, -1], [5, 4, 3, 2, 1], [-5]]