gpt4 book ai didi

python - 将 Python 列表拆分为匹配列表项定界符上的列表列表的正确方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:01 24 4
gpt4 key购买 nike

list = ['a', 'b', 'c', '', 'd', 'e', 'f', '', 'g','h','i']

def chunk(list, delim):
ct = list.count(delim)
chunks = [[]] * (ct+1)
for iter in range(ct):
idx = list.index(delim)
chunks[iter] = list[:idx]
list = list[idx+1:]
chunks[ct] = list
return chunks

print chunk(list, '')

产生:

[['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]

这是我想要的,但我觉得这是实现此目的的“c”方式。有没有我应该知道的更像 python 的结构?

最佳答案

这是一种方法 using itertools.groupby

[list(v) for k, v in groupby(l, key=lambda x: x!= '') if k]

演示:

>>> from itertools import groupby
>>> l = ['a', 'b', 'c', '', 'd', 'e', 'f', '', 'g','h','i']
>>> ch = [list(v) for k, v in groupby(l, key=lambda x: x!= '') if k]
>>> ch
[['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]

关于python - 将 Python 列表拆分为匹配列表项定界符上的列表列表的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39418384/

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