gpt4 book ai didi

python - 如何根据前一个对象组合列表中的对象?

转载 作者:行者123 更新时间:2023-11-28 21:31:16 25 4
gpt4 key购买 nike

我有一个有序子列表的列表,其中包含两个字符串对象。

mylist = [['x1','red'],['x2','blue'],['x2','green'],['x1','yellow']]

我正在尝试找到一种方法来启动以下规则;

for sublist in mylist:
if sublist[0] == sublist[0] - 1
combine sublist and sublist - 1

换句话说,我需要将每个子列表中的第一个字符串与前面子列表中的第一个字符串进行检查,如果两者匹配则将它们组合起来;结果如下:

mySortedlist = [['x1','red'],['x2','blue','x2','green'],['x1','yellow']]

注意:我只对前一个子列表感兴趣,而不是该项目是否出现在列表中的其他位置。

更新:根据另一位用户的有用评论,值得我指出的是,我的实际数据文件有数千行文本,其中这些异常可能出现在任何地方。

最佳答案

您可以使用itertools.groupby查找连续元素:

from itertools import chain, groupby
from operator import itemgetter

[[*chain.from_iterable(v)] for _,v in groupby(mylist, key=itemgetter(0))]
# [['x1', 'red'], ['x2', 'blue', 'x2', 'green'], ['x1', 'yellow']]

关于python - 如何根据前一个对象组合列表中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58555066/

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