我想要做的是将列表分为两部分,并尽可能地将其切成均匀的大小,然后将这两部分的元素交织在一起,以形成混洗后的列表。例如,有一个列表
my_list = [1,2,3,4,5,6]
我想将其重新排列为
[1,6]
我想以此方式更改列表。但是我不知道如何将所有元素插入正确的位置。
我想要做的是将列表分为两部分,并尽可能地将其切成均匀的大小,然后将这两部分的元素交织在一起,以形成混洗后的列表。例如,有一个列表
my_list = [1,2,3,4,5,6]
我想将其重新排列为
[1,6]
我想以此方式更改列表。但是我不知道如何将所有元素插入正确的位置。
li,res = [1,2,3,4,5,6,7,8],[]
length = len(li)
half = length//2
for i,j in zip(li[:half],li[half:]):
res.append(i)
res.append(j)
if length % 2 != 0:
res.append(li[length - 1])
,
13
/ \
4 4
/ \
17 11
如果列表中的项目数为奇数,您没有指定期望的内容,因此我假设您想将剩余的项目追加到最终列表的末尾。
,这是一个简单的例子:
from math import ceil
my_list = [1,6]
result = sum([my_list[i::ceil(len(my_list)/2)] for i in range(ceil(len(my_list)/2))],[])
# [1,6]
my_list = [1,7]
result = sum([my_list[i::ceil(len(my_list)/2)] for i in range(ceil(len(my_list)/2))],4]