我用一个代码来反转列表的元素。在这里,我将运行循环形式0的算法应用于字符串的长度,并按照我的方式交换值。我基本上使用第三个临时变量在两个变量之间进行切换:
l = [1, 2, 3, 4, 5]
g = len(l) - 1
for i in range (0, len(l)):
m = l[i]
l[i] = l[g]
l[g] = m
g -= 1
print(l)
然而,l打印为原始列表。从逻辑上讲,我没有看到代码中的任何缺陷。就我所见,一切都得到了适当的交换。
答案 0 :(得分:2)
逻辑问题在于您循环遍历整个列表。由于您在循环的每个回合交换2个元素,因此您只需要迭代超过列表的一半来交换所有值。
换句话说,当你遍历列表索引的前半部分时,你可以反转它。然后,当您遍历索引的后半部分时,将其反转。
作为旁注,在python中交换值的一种非常酷的方法是:
a, b = b, a
或者在你的情况下:
l[i], l[g] = l[g], l[i]
答案 1 :(得分:0)
#loop time should be len(1)/2
l = [1, 2, 3, 4, 5]
g = len(l) - 1
for i in range (0, len(l)/2):
m = l[i]
l[i] = l[g]
l[g] = m
g -= 1
print(l)