Python 3.x 将一个列表与其自身和另一个列表交错

Python 3.x 将一个列表与其自身和另一个列表交错,python-3.x,Python 3.x,我有一个包含6个数字的列表,还有一个包含4个列表的列表。我想把前3个数字放在第一个列表中,接下来的2个数字放在后面,最后一个数字放在最后一个列表中的6个列表中。 我知道这令人困惑,但以下是我的代码: Start_Comparing_Index = -1 Looping_Counter = 4 # = 4 for counter in range(4): Looping_Counter -= 1 # =3 Start_Comparing_Index += 1 # = 0 print("coun

我有一个包含6个数字的列表,还有一个包含4个列表的列表。我想把前3个数字放在第一个列表中,接下来的2个数字放在后面,最后一个数字放在最后一个列表中的6个列表中。 我知道这令人困惑,但以下是我的代码:

Start_Comparing_Index = -1
Looping_Counter = 4 # = 4
for counter in range(4):
Looping_Counter -= 1  # =3
Start_Comparing_Index += 1  # = 0
print("counter = " + str(counter))
for i in range(Looping_Counter):
    s[counter].append(x[Start_Comparing_Index])
    print("Comp index= " + str(Start_Comparing_Index))
    if i == range(Looping_Counter)[-1]:
        break
    else:
        Start_Comparing_Index += 1
print(s) 


but its printing out :

counter = 0
Comp index= 0
Comp index= 1
Comp index= 2
counter = 1
Comp index= 3
Comp index= 4
counter = 2
Comp index= 5
counter = 3
[[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]
虽然我希望它打印此列表,但:

[[1,2,3],[4,5],[6]]

我的代码怎么了?

奇怪的问题。如果您确切地知道所有列表的长度,以及结果中所需的元素的确切组合,为什么不准确地编写它,而不使用任何循环

def get_lists(src, n):
    r, s = [], 0
    for i in range(n, -1, -1):
        r.append(src[s:s+i])
        s += i
    return r

print(get_lists(list(range(1, 7)), 3))
# [[1, 2, 3], [4, 5], [6], []]
>>> first = range(1,7)
>>> second = [6]
>>> merged = [first[0:3], first[3:-1], second]
>>> merged
[[1, 2, 3], [4, 5], [6]]

抱歉,标题与代码无关,x=[1,2,3,4,5,6]和s=[[]]*4编辑了标题,因为您自己评论说它与问题正文(?)无关因为我希望它是一个通用代码,因为有时我不想只取3个元素,而是想取4或5个元素,这取决于某个变量,我可以从用户输入的数据中提取。然后你的问题应该说明这些条件。对不起,伙计,这是我第一次在这里,不知道下次我一定要添加它。谢谢你的努力帮助我,谢谢:)Yo Ferhat我想这已经解决了我的问题,也解决了我想要的。我将编辑该代码以满足我的确切需求非常感谢并感谢您的帮助:)