Python 为什么列表命名为;右'&引用;保持不变?
我想知道为什么这个代码没有改变我的列表Python 为什么列表命名为;右'&引用;保持不变?,python,list,Python,List,我想知道为什么这个代码没有改变我的列表 height = [1,2,3,4,3,2,3,2,1] right = [None]*9 for i in reversed(range(9,1)): if height[i-1]>height[i]: right[9-i-1] = 1 else: right[9-i-1] = 0 print(right) 您的代码发布了范围(9,1),该范围为空 要迭代1,2,3,4,请使用range(1,5)
height = [1,2,3,4,3,2,3,2,1]
right = [None]*9
for i in reversed(range(9,1)):
if height[i-1]>height[i]:
right[9-i-1] = 1
else:
right[9-i-1] = 0
print(right)
range(1,5)
reversed(范围(1,5))
或range(4,0,-1)
该范围将永远不会退出,因此我不确定您如何才能正确打印
反转(范围(9,1))
正在空列表上迭代。我添加了一行关于如何初始化列表“right”,@AndrejKesely是否有不同的方法?首先,您需要范围(9,1,-1)
。第二,什么是n
?通过在for循环中添加print(i)
来调试自己。然后阅读range
的工作原理。你是对的,尽管range()
在Python3中没有返回列表。说range(1,5)
会生成一个迭代1,2,3,4的iterable,这有点令人费解。在它周围添加list()
调用只会添加更多他们必须关注的代码。当然,没有一种简洁、技术上正确的方法来表达它。尽管,忽略数据结构而只讨论内容可能更简单:范围(9,1)
为空,范围(1,5)
为1,2,3,4
,反向(范围(1,5))
为4,3,2,1
。