Python 3.x 仅用于循环打印1?python

Python 3.x 仅用于循环打印1?python,python-3.x,Python 3.x,我试图使用for循环以倒序打印列表,但是我的代码只打印1,知道为什么吗 sorted_list = ["jack",4,3,1,"jill",4,1,0,"bob",0,0,10,"tim",5,3,1,"sod",3,1,0] des_list = [] for i in range(len(sorted_list)-2,-3,-1): des_list.append(sorted_list[i-2]) des_list.append(s

我试图使用for循环以倒序打印列表,但是我的代码只打印1,知道为什么吗

    sorted_list = ["jack",4,3,1,"jill",4,1,0,"bob",0,0,10,"tim",5,3,1,"sod",3,1,0]
    des_list = []
    for i in range(len(sorted_list)-2,-3,-1):
        des_list.append(sorted_list[i-2])
        des_list.append(sorted_list[i - 1])
        des_list.append(sorted_list[i])
        des_list.append(sorted_list[i+1])
    print(des_list)

将数据块存储到对象中可能会更容易。这样,您就可以在对象列表上调用
reversed()
,并以这种方式处理数据

如果您想保持列表的格式,可以“分块”遍历列表,如下所示:
for i in range(0,len(sorted_list),4):

因此,对于列表中的每4个元素,使用列表切片表示法获取数据块:
sorted_list[i:i+4]
,并将其插入到目标列表的前面

综合起来,您可以得到以下代码:

sorted_list = ["jack",4,3,1,"jill",4,1,0,"bob",0,0,10,"tim",5,3,1,"sod",3,1,0]
des_list = []
for i in range(0, len(sorted_list), 4):
    des_list.insert(0, sorted_list[i:i+4])
print(des_list)
sorted_list = ["jack",4,3,1,"jill",4,1,0,"bob",0,0,10,"tim",5,3,1,"sod",3,1,0]
des_list = []
for i in range(0, len(sorted_list), 4):
    for j in reversed(sorted_list[i:i+4]):
        des_list.insert(0, j)
print(des_list)
这将输出以下内容:
['sod',3,1,0],'tim',5,3,1],'bob',0,0,10],'jill',4,1,0],'jack',4,3,1]

请记住,该代码将为您提供一个列表列表,因为
sorted_list[i:i+4]
返回一个列表,这就是为什么使用对象更容易的原因

如果不想拥有列表列表,可以反转切片列表,循环遍历反转切片列表中的每个元素,然后将其一次插入到目标列表中

这样做,您将获得以下代码:

sorted_list = ["jack",4,3,1,"jill",4,1,0,"bob",0,0,10,"tim",5,3,1,"sod",3,1,0]
des_list = []
for i in range(0, len(sorted_list), 4):
    des_list.insert(0, sorted_list[i:i+4])
print(des_list)
sorted_list = ["jack",4,3,1,"jill",4,1,0,"bob",0,0,10,"tim",5,3,1,"sod",3,1,0]
des_list = []
for i in range(0, len(sorted_list), 4):
    for j in reversed(sorted_list[i:i+4]):
        des_list.insert(0, j)
print(des_list)

它输出如下:
['sod',3,1,0',tim',5,3,1',bob',0,0,10',jill',4,1,0',jack',4,3,1]

也许可以尝试打印整个列表:
打印(des_list)
,而不仅仅是index
i
中的元素,我不是python程序员,但是那不是在循环之外吗?@Bathsheba我想他是想先把他想打印的所有元素附加到列表中,然后再打印它的所有内容。是的,就是这样,我需要先附加所有属性,然后再打印列表请不要破坏你的问题。