【发布时间】:2022-01-09 20:46:14
【问题描述】:
从初始列表:
starting_list = [
[1,2,3, 4,5,6, 7,8,9 ],
[11,22,33, 44,55,66, 77,88,99 ],
[111,222,333, 444,555,666, 777,888,999]
]
我想创建一个新列表(使用 for 循环或列表推导式),其元素是starting_list 的子列表,按三个元素分组并从每三个索引开始:
grouped_by_3_elements = [
[1,2,3, 11,22,33, 111,222,333],
[4,5,6, 44,55,66, 444,555,666],
[7,8,9, 77,88,99, 777,888,999]
]
我已经完成了以下操作,但不完全是我想要的
[ [1, 2, 3], [11, 22, 33], [111, 222, 333], [4, 5, 6], [44, 55, 66], [444, 555, 666], [7, 8, 9], [77, 88, 99], [777, 888, 999] ]
谢谢
••• 更新•••
对于那些想知道我做了什么来获得当前解决方案的人:
lst = [
[1,2,3,4,5,6,7,8,9],
[11,22,33,44,55,66,77,88,99],
[111,222,333,444,555,666,777,888,999]
]
new_lst = []
for col in range(0, len(lst[0]), 3):
for row in range(3):
new_lst.append(lst[row][col:col+3])
print(new_lst)
>>> [[1, 2, 3], [11, 22, 33], [111, 222, 333], [4, 5, 6], [44, 55, 66], [444, 555, 666], [7, 8, 9], [77, 88, 99], [777, 888, 999]]
我能以某种方式达到我想要的吗
[
[1,2,3, 11,22,33, 111,222,333],
[4,5,6, 44,55,66, 444,555,666],
[7,8,9, 77,88,99, 777,888,999]
]
无需通过单独的循环运行我的结果 (new_lst) 以重新打包?
【问题讨论】:
-
你是如何管理你所管理的?
标签: python nested-lists flatten