如何在python中串联列表,但如果元素相等则仅保留相邻列表的最后一个或第一个元素

莫非斯

这似乎是一件容易的事,但是使用谷歌搜索使我毫无用处。

我有四个这样的清单: [0,1,3], [3,5,6], [6,5,8], [9,1]

我想将它们串联起来,但是在串联之后,我只想,例如3,串联第一和第二列表中的唯一一个6,串联第二和第三列表中的唯一一个,但是串联第三和第四列表中的一个,则不应删除任何元素。

输出应为

[0,1,3,5,6,5,8,9,1]

我显然不能使用+串联列表,并删除重复项,或者某些其他元素可能会被删除。我已经考虑过一些逻辑,但是它不是很“ pythonic”。有什么办法可以轻松做到这一点吗?

亚历克斯·霍尔
from functools import reduce

lists = [[0, 1, 3], [3, 5, 6], [6, 5, 8], [9, 1]]


def add(a, b):
    if a and b and a[-1] == b[0]:
        a = a[:-1]
    return a + b


combined = reduce(add, lists)
assert combined == [0, 1, 3, 5, 6, 5, 8, 9, 1]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

迭代Python列表中的连续元素,以使最后一个元素与第一个元素结合

如果子列表的第一个元素在Python中是唯一的,则从第一个子列表获取前两项

ul列表中的第一个和最后一个VISIBLE元素

列表中连续对的和,包括最后一个元素与第一个元素的和

Python切片列表中的第一个和最后一个元素

Python:嵌套列表中的第一个元素

如何在python列表中从最后到第一个访问所有列表元素

如何将列表分为相等的子列表,最后一个子列表由列表的第一个可能的元素组成

Python中的列表仅避免第一个否定元素

如何在Beautiful Soup中选择列表中每个元素的第一个孩子

在Python中是否可以在一个表达式中的第一个,内部和最后一个元素中拆分列表?

提取列表中列表的第一个元素

仅更改列表中第一个元素的方法(将列表作为参数传递)

Python-如何替换列表列表中每个列表的第一个元素

如何在python中使列表的第一个元素不变?

在Python列表中查找元素的第一个和最后一个出现的最佳方法是什么?

遍历Python列表,但第一个元素在末尾?

如何在玉器中给列表的第一个元素上课?

如何在Python中匹配两个不同列表的第一个元素

如何在 R 中列表的每个向量(不同长度)中附加第一个和最后一个元素,而不会使代码变慢?

如何在python中搜索列表的第一个元素

如果第一个和最后一个元素相等,则完整列表

如何在第一个元素最大的列表中找到一个列表?

如何从python列表中的每个列表中拉出第一个元素?

列表/嵌套列表中的第一个元素

Python如何通过知道列表中列表的第一个元素来获取列表中列表的索引?

一个python程序,用于保留列表中的第一个元素,并删除下一个元素

Python 。如果第二个元素相等,如何对子列表的元素进行排序 按第一个元素对子列表进行排序

更改每组 Python 列表的第一个元素