python - 当元素与前一个元素不同时,按整数切片列表

标签 python grasshopper

我需要能够将点列表分割成多个子列表,以作为分割另一个列表的指南。

a = 1 # just an example
b = 2 # just an example
c = 3 # just an example

# My list right now 
y_vals = [a, a, a, a, a, a, b, b, b, b, b, b, b, b, b, b, b, c, c, c, c, c]

我需要它在每次数字变化时进行切片。 abc是实际的数字,但是数字比较长,所以我用a,b打出来, c.

我想使用[:x]的切片方法,但它是一个5000多个数字的列表,我不知道如何对列表进行切片。预先感谢您!

最佳答案

如果您只想获取仅具有相同编号的子列表,则不必费心进行切片。一个好的方法是 itertools.groupby :

from itertools import groupby

li = [3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2]

for _, group in groupby(li):
    print(list(group))

输出

[3, 3, 3, 3, 3, 3]
[1, 1, 1, 1, 1]
[2, 2]

编辑从这里到您所需的列表列表是一个简单的单行:

output = [list(group) for _, group in groupby(li)]
print(output)

输出

[[3, 3, 3, 3, 3, 3], [1, 1, 1, 1, 1], [2, 2]]

关于python - 当元素与前一个元素不同时,按整数切片列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57297009/

相关文章:

python - 如何用另一个数据框行重命名列名称?

python - Pandas 扁平化分层多索引

c# - 缺少成员异常 : 'Guid' object has no attribute 'length'

c# - 将 Python 数组转换为 C# 并返回值

python - 用于简单多元伯努利推理的多链绘制

python - Django 自定义 MultiWidget 保留旧值

python - 使用 scipy 的 RectBivariateSpline 和 SmoothBivariateSpline 对噪声数据进行样条曲面拟合

c# - 在 C# 图形位图中放置文本坐标的位置

c# - Alea Gpu 运行时错误在 Rhino/GrassHopper 项目中找不到文件或依赖项

sms - Grasshopper 语音 + Twilio 文本