繁体   English   中英

使用 for 循环反转列表

[英]Reverse list using for loop

my_list=[1,2,3,4,5]
new_list=[]
for i in range(len(my_list)):
    new_list.insert(i,my_list[-1])
    my_list.pop(-1)

我使用上面的代码来反转一个列表,但我想知道为什么 range(len(my_list)) 是必要的,更具体地说,如果我简单地将“for i in my_list:”放在其中,为什么它不起作用?

可以使用 for 循环反转列表,如下所示:

>>> def reverse_list(nums):
...     # Traverse [n-1, -1) , in the opposite direction.
...     for i in range(len(nums)-1, -1, -1):
...         yield nums[i]
...
>>>
>>> print list(reverse_list([1,2,3,4,5,6,7]))
[7, 6, 5, 4, 3, 2, 1]
>>>

查看Python List Reversal上的此链接以获取更多详细信息

#use list slicing 
a = [123,122,56,754,56]
print(a[::-1])

像这样?

new_list=[]

for item in my_list:
    new_list.insert(0, item)
    # or:
    # new_list = [item] + new_list
my_list = []                     # empty list
for item in range(5):            # range is from 0 - 4
    my_list.insert(0,item +1)    # insert items to my_list at index-position [0]
print(my_list)                   # list will be printed in reverse, from 5 - 1

请解释为什么该列表是反向打印的?

def rev_lst(lst1, lst2):

    new_lst = [n for n in range(len(lst1)) if lst1[::-1]==lst2]
    return True

这可能是正确的解决方案吗?

最简单的方法是:

list1 = [10, 20, 30, 40, 50]


for i in range(len(list1)-1,-1,-1):

    print(list1[i])
lst = [1,2,3,400]
res = []

for i in lst:
    # Entering elements using backward index (pos, element)
    res.insert(-i, i)

print(res)
# Outputs [400, 3, 2, 1]
l = [10, 20, 30, 40, 50]
t = len(l) # ======>5 
for n in range(t-1,-1,-1):  # t-1 is 4 , -1 means 0 , decrement by-1 
    print(l[n]) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM