python - 根据正值和负值之间的变化进行拆分的列表列表

标签 python python-3.x

每次列表中的项目从正值更改为负值时,都会启动一个新的子列表。对于数据:

khanh = [-2.22,1.4,2,3,4,5,6,0,-2,-3,-4,-5,7,8,9]

我正在尝试输出:

[[-2.22],[1.4,2,3,4,5,6,0],[-2,-3,-4,-5],[7,8,9]]

到目前为止我的代码:

adam = [[prev, next] for prev, next in zip(khanh, khanh[1:]+[None])]

amber = [[currentIdx,
          khanh[idx + 1] if idx < len(khanh) - 1 else None] for idx, currentIdx in enumerate(khanh)]

robby = [x for x in khanh if x > 0 ]

print(amber)
print()
print(adam)

最佳答案

>>> lst = [-2.22,1.4,2,3,4,5,6,0,-2,-3,-4,-5,7,8,9]
>>> correct = [[-2.22],[1.4,2,3,4,5,6,0],[-2,-3,-4,-5],[7,8,9]]
>>> from itertools import groupby
>>> result = [list(g) for _, g in groupby(lst, key=lambda a: a < 0)]
>>> correct == result
True

关于python - 根据正值和负值之间的变化进行拆分的列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48966963/

相关文章:

python - 创建元组,其中第一个元素是混合大小写的单词,第二个元素是完全小写的字符串

python - 可以在没有显式 session.add() 的情况下将对象添加到 SQLAlchemy session 吗?

python - 使用二级索引值将 Pandas 中的列转换为行

Python 3.5 字符串格式 : How to add a thousands-separator and also right justify?

python - Python中的UTF-8编码问题,将utf-8与ascii字符串连接(实际上是插值)

python - 如何刷新打印功能的输出?

python - 如何在 Python 中编写自己的异步/等待协程函数?

python - Seaborn jointplot 十六进制选项不生成图形

Python解析csv文件——用冒号代替逗号

python - 如何使用python从git存储库下载单个文件