【发布时间】:2012-04-13 02:09:13
【问题描述】:
可能重复:
join list of lists in python
Flatten (an irregular) list of lists in Python
所以,我需要使用 python 合并部分列表,但仍然无法获得有效的解决方案。 比如我有一个arr列表,我想得到
[
[1, 2, (3, 4, 5, 6, 7, 8, 9, 11, 1)],
[5, 6, (7, 8, 9, 10, 1)]
]
因此,它与 sql 查询“select * from table where smth=smth1”非常相似。不过,下面是我的代码,但效果不佳。
arr = [[1, 2, 3, 4, 5, 6], [1, 2, 6, 7, 8, 9], [1, 2, 11, 1, 5, 9], [5, 6, 7, 8, 9, 10], [5, 6, 1, 1, 1, 1]]
result = []
for i in arr[:]:
for j in arr[:]:
if i[0] == j[0] and i[1] == j[1] and i != j:
a = i[:]
a[2:] = zip(i[2:], j[2:])
result.append(a)
【问题讨论】:
-
这个问题已经回答了很多次了。
-
这到底是什么意思?很难理解...您要展平列表项吗?如果是这样,那么已经有很多这样的问题了。
-
@Closevoters:注意目标结构不寻常,他们想要的不仅仅是扁平化。
-
哦..嗯。这个问题很难理解,我建议你改写它,这样它就不会像重复了:)
-
哦,我想我明白了,他取每个列表的前两个元素,将它们作为列表中的前两个元素。然后他将列表的其余部分添加到一个元组中。他重复这一点,不添加重复的项目。然后他开始一个新列表,因为前两项已更改为 5,6。