【发布时间】:2022-11-16 23:24:56
【问题描述】:
我有一个很大的清单。我想将列表分成 3 个小列表,这样第一个元素进入第一个列表,第二个元素进入第二个列表,第三个元素进入第三个列表,第四个再次进入第一个列表。
【问题讨论】:
-
a, b, c = (big_list[i::3] for i in range(3))
我有一个很大的清单。我想将列表分成 3 个小列表,这样第一个元素进入第一个列表,第二个元素进入第二个列表,第三个元素进入第三个列表,第四个再次进入第一个列表。
【问题讨论】:
a, b, c = (big_list[i::3] for i in range(3))
该解决方案使用模函数。
def split(l: list, n: int = 3) -> list[list]:
res = [list() for _ in range(n)]
for i, x in enumerate(l):
res[i%n].append(x)
return res
sample_list = [*range(9)]
l1, l2, l3 = split(sample)
# l1 = [0, 3, 6]
# l2 = [1, 4, 7]
# l3 = [2, 5, 8]
【讨论】: