我试着从100循环到0。在Python中如何做到这一点?
I在(100,0)范围内不成立。
有关为什么range以这种方式工作的讨论,请参见为什么slice和range是独占的?
我试着从100循环到0。在Python中如何做到这一点?
I在(100,0)范围内不成立。
有关为什么range以这种方式工作的讨论,请参见为什么slice和range是独占的?
当前回答
for i in range(100, -1, -1)
还有一些稍长的(慢的)解决方案:
for i in reversed(range(101))
for i in range(101)[::-1]
其他回答
尝试range(100,-1,-1),第三个参数是要使用的增量(这里有文档)。
(“范围”选项,开始,停止,步骤在这里有记录)
哦,好吧,你的问题看错了,我猜是关于在数组中反向移动?如果是这样,我有这个:
array = ["ty", "rogers", "smith", "davis", "tony", "jack", "john", "jill", "harry", "tom", "jane", "hilary", "jackson", "andrew", "george", "rachel"]
counter = 0
for loop in range(len(array)):
if loop <= len(array):
counter = -1
reverseEngineering = loop + counter
print(array[reverseEngineering])
a = 10
for i in sorted(range(a), reverse=True):
print i
你也可以在python中创建一个自定义的反向机制。哪可以使用任何地方循环一个可迭代向后
class Reverse:
"""Iterator for looping over a sequence backwards"""
def __init__(self, seq):
self.seq = seq
self.index = len(seq)
def __iter__(self):
return self
def __next__(self):
if self.index == 0:
raise StopIteration
self.index -= 1
return self.seq[self.index]
>>> d = [1,2,3,4,5]
>>> for i in Reverse(d):
... print(i)
...
5
4
3
2
1
另一个解决方案:
z = 10
for x in range (z):
y = z-x
print y
结果:
10
9
8
7
6
5
4
3
2
1
提示: 如果你使用这个方法来计数列表中的索引,你会希望从y值开始-1,因为你的列表索引将从0开始。