gpt4 book ai didi

python - 在某些条件下组合列表元素

转载 作者:太空狗 更新时间:2023-10-29 20:56:06 26 4
gpt4 key购买 nike

如果满足某些条件,我如何组合列表的元素。

我看到过关于组合列表元素的帖子,但不是在某些条件下。

假设我有一个包含单词列表的列表:

words = [
['this','that!','riff','raff'],
['hip','hop!','flip!','flop'],
['humpty','dumpty!','professor!','grumpy!']
]

如何只组合那些包含 ! 的元素?

例如,输出如下所示:

[['this', 'that!', 'riff', 'raff'],
['hip', 'hop!, flip!', 'flop'], # 1,2 are now combined
['humpty', 'dumpty!, professor!, grumpy!']] # 1,2,3 are now combined

我试过这个:

for word in words:
word = ', '.join(i for i in word if re.search('!',str(i)))
print word

但是得到了:

that!
hop!, flip!
dumpty!, professor!, grumpy!

谢谢。

最佳答案

使用itertools.groupby :

>>> from itertools import groupby
>>> out = []
>>> for lst in words:
d = []
for k, g in groupby(lst, lambda x: '!' in x):
if k:
d.append(', '.join(g))
else:
d.extend(g)
out.append(d)
...
>>> out
[['this', 'that!', 'riff', 'raff'],
['hip', 'hop!, flip!', 'flop'],
['humpty', 'dumpty!, professor!, grumpy!']]

关于python - 在某些条件下组合列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27429729/

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