gpt4 book ai didi

python - 如何在 Python 中组织在负值和正值之间交替的数据

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:53 25 4
gpt4 key购买 nike

我将文件中的数据点列表插入到我构建的链表类中。
该文件的组织方式是先有一系列负值,然后是一系列来回交替的正值。一个例子:

-2323 

-2324

-53434

-1027

-34232

343434

5657

6565

6500

-343434

-3434

-565

5845

4667

5453

98356

此模式会持续多行。每个部分的负值或正值的数量从不相同。

我想以某种方式分隔这些值,以便第一个列表对象包含第一组正数到负数,在本例中为从 -23236500。下一个列表对象将包含从 -34343498356 的值,依此类推。

我不知道如何让 python 在读取文件时知道如何分离这些数据集。任何帮助将不胜感激!

最佳答案

import itertools
groups = itertools.groupby(l, lambda x : x > 0)
result = [list(groups[i][1]) + list(groups[i + 1][1]) for i in range(0, len(groups), 2)]

这将首先根据元素是否为正对元素进行分组,然后将组中的相邻对组合成一个列表,然后该列表将成为结果列表的一个元素。

编辑:我一直忘记 itertools 生成的对象不像普通的可迭代对象那样工作。

下面的代码应该确实有效,如果有点乱的话。

import itertools
groups = itertools.groupby(l, lambda x : x > 0)
grouplist = [[i for i in y] for (x, y) in groups]
result = [grouplist[i] + grouplist[i + 1] for i in range(0, len(grouplist), 2)]

关于python - 如何在 Python 中组织在负值和正值之间交替的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18281428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com