如何将列表转换为列表列表?
How to convert a list into list of lists?
我有一个号码列表:
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
我找到了创建列表列表的方法:
new_L = [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]]
但这不是我需要的。我需要创建 (x) 次 (y) 列表列表。例如,作为 3 乘以 4 的列表列表:
new_L_2 = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
或者一个 2*6 的列表列表:
new_L_3 = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12]]
我怎样才能做到?提前致谢。
您可以将列表理解与 range
结合使用以获得 x
个元素。例如你想要 4 个元素使用
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
out = [l[i: i+4] for i in range(0, len(l), 4)]
print(out)
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
x = 3
y = 4
newList = []
for i in range(x):
newList.append([L[t+(i*y)] for t in range(y)])
print(newList)
想想如果你把它画在纸上,你会如何分解它。
您需要创建一个循环访问数字列表的函数。有很多方法可以做到这一点,但我想到的方法如下。
创建一个函数,它接受一个输入列表和一个整数 (X),表示每个子列表中的项目数。遍历列表中的每个项目并将其添加到临时列表中。如果列表项的索引可以被X整除,则将临时列表追加到列表列表中,清空临时列表,重新开始。
我有一个号码列表:
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
我找到了创建列表列表的方法:
new_L = [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]]
但这不是我需要的。我需要创建 (x) 次 (y) 列表列表。例如,作为 3 乘以 4 的列表列表:
new_L_2 = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
或者一个 2*6 的列表列表:
new_L_3 = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12]]
我怎样才能做到?提前致谢。
您可以将列表理解与 range
结合使用以获得 x
个元素。例如你想要 4 个元素使用
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
out = [l[i: i+4] for i in range(0, len(l), 4)]
print(out)
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
x = 3
y = 4
newList = []
for i in range(x):
newList.append([L[t+(i*y)] for t in range(y)])
print(newList)
想想如果你把它画在纸上,你会如何分解它。
您需要创建一个循环访问数字列表的函数。有很多方法可以做到这一点,但我想到的方法如下。
创建一个函数,它接受一个输入列表和一个整数 (X),表示每个子列表中的项目数。遍历列表中的每个项目并将其添加到临时列表中。如果列表项的索引可以被X整除,则将临时列表追加到列表列表中,清空临时列表,重新开始。