gpt4 book ai didi

python - 使用给定项目拆分列表

转载 作者:行者123 更新时间:2023-12-01 07:47:37 24 4
gpt4 key购买 nike

我想提取特殊元素“-break-”之间的元素组。然后将这些组存储到一个新列表中。

这是输入列表:

main_list = [ '-break-',
'one',
'two',
'-break-',
'three',
'-break-',
'four',
'five',
'six'
'-break-',
'seven',
'eight',
'nine',
'ten'
]

输出列表应该是:

new_list = [ ['one', 'two'],
['three'],
['four', 'five', 'six'],
['seven', 'eight', 'nine', 'ten'],
]

最佳答案

这是一种使用 itertools.groupby 的方法:

from itertools import groupby
out = [[*v] for k,v in groupby(main_list, key= lambda x: x != '-break-') if k]

print(out)

[['one', 'two'],
['three'],
['four', 'five', 'six'],
['seven', 'eight', 'nine', 'ten']]
<小时/>

itertools.groupby 将相等的连续值分组在一起。但是,当提供 key 时,将应用相同的逻辑,但使用 key 函数的结果。在这种情况下,key 函数将生成以下值:

[x != '-break-' for x in main_list]
# [False, True, True, False, True, False, True, True, True, True, True, True, True]

因此,在每次迭代中,我们将收到一个由分组键(TrueFalse)组成的 tuple 和一个包含相应的值。因此,为了只保留分组键为 True 的那些,我们只需要添加 if k 作为条件即可。

关于python - 使用给定项目拆分列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56381253/

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