繁体   English   中英

将列表插入特定索引处的2D列表

[英]Insert list to a 2D list at a specific index

我没有找到很多关于将列表插入2D列表的信息。

我试图使用append(这不起作用,因为append不能附加到特定索引)和insert,但insert不能在列表中追加多个列表。

我想转换这个2D列表

[[0, dataABC, date], [0, dataABC, date], [1, dataABC, date], [1, dataABC, date] , [1, dataABC, date]]

到3D列表以直接访问特定索引的列表。

data = [
[[0, dataABC, date],[0, dataABC, date]],
[[1, dataABC, date], [1, dataABC, date], [1, dataABC, date]]
]

print(data[1]):
[1, dataABC, date], [1, dataABC, date], [1, dataABC, date]

如果订购它们,您可以使用itertools.groupby

>>> l = [[0, 'data', 'date'], [0, 'data', 'date'], [1, 'data', 'date'], [1, 'data', 'date'] , [1, 'data', 'date']]
>>> results = list(list(v) for k, v in groupby(l, key=lambda x: x[0]))
>>> results
[[[0, 'data', 'date'], [0, 'data', 'date']], [[1, 'data', 'date'], [1, 'data', 'date'], [1, 'data', 'date']]]

如果没有订购,请使用collections.defaultdict

>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> for e in l:
...     d[e[0]].append(e)
...
>>> results = list(d.values())
>>> results
[[[0, 'data', 'date'], [0, 'data', 'date']], [[1, 'data', 'date'], [1, 'data', 'date'], [1, 'data', 'date']]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM