返回

python-如何使用标记元素拆分列表?

发布时间:2022-08-31 09:50:07 213
# node.js

我试图在Python中使用一些元素作为标记来拆分列表。例如,考虑以下列表:

["marker1", "elem1", "elem2", "marker2", "elem3"]

我希望将其分为两个子列表:

[["marker1", "elem1", "elem2"], ["marker2", "elem3"]]

如果第一个元素不是标记,则标记之前的元素应视为单独的子列表:

# From:
["elem1", "elem2", "marker1", "elem3", "marker2", "elem4", "elem5"]
# To:
[["elem1", "elem2"], ["marker1", "elem3"], ["marker2", "elem4", "elem5"]]

使用常规循环很容易:

lst = ["elem1", "elem2", "marker1", "elem3", "marker2", "elem4", "elem5"]

separated = []
sub_lst = []
for elem in lst:
    if elem[:6] == "marker" and sub_lst:
        separated.append(sub_lst)
        sub_lst = []
    sub_lst.append(elem)
if sub_lst:
    separated.append(sub_lst)

此代码有9行长。我的问题是如何使用列表理解或任何其他功能性风格在一行(或更多行)中做到这一点。也欢迎任何其他优雅的解决方案。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(2)
按点赞数排序
用户头像