我试着从100循环到0。在Python中如何做到这一点?
for i in range (100,0)不工作。
for i in range (100,0)
尝试range(100,-1,-1),第三个参数是要使用的增量(已文档化的在这里)。
range(100,-1,-1)
("range"选项,start, stop, step有文档在这里)
for i in range(100, -1, -1)
还有一些稍长的(慢的)解决方案:
for i in reversed(range(101)) for i in range(101)[::-1]
在我看来,这是最有可读性的:
for i in reversed(xrange(101)): print i,
通常在Python中,你可以使用负号从后面开始:
numbers = [10, 20, 30, 40, 50] for i in xrange(len(numbers)): print numbers[-i - 1]
结果:
50 40 30 20 10
另一个解决方案:
z = 10 for x in range (z): y = z-x print y
10 9 8 7 6 5 4 3 2 1
for var in range(10,-1,-1)作品
for var in range(10,-1,-1)
我在代码学院的一个练习中尝试了这一点(在字符串中反转字符而不使用反转或::-1)
def reverse(text): chars= [] l = len(text) last = l-1 for i in range (l): chars.append(text[last]) last-=1 result= "" for c in chars: result += c return result print reverse('hola')
又短又甜。这是我在做codeAcademy课程时的解决方案。按rev顺序打印字符串。
def reverse(text): string = "" for i in range(len(text)-1,-1,-1): string += text[i] return string
a = 10 for i in sorted(range(a), reverse=True): print i
为什么你的代码不能工作
你编码for i in range (100, 0)很好,除了
for i in range (100, 0)
第三个参数(step)默认为+1。因此,您必须将range()的第三个参数指定为-1来后退。
step
+1
-1
for i in range(100, -1, -1): print(i)
注:这包括100 &输出为0。
有多种方法。
更好的方法
对于python方式,检查PEP 0322。
这是一个Python3的python示例,输出从100到0(包括100 &0)。
for i in reversed(range(101)): print(i)
你总是可以增加范围,并从变量100 - i中减去i in range( 0, 101 ). 0。
100 - i
i in range( 0, 101 )
for i in range( 0, 101 ): print 100 - i
解决你的问题的简单答案是这样的:
for i in range(100): k = 100 - i print(k)
我想同时对两个列表进行反向循环,所以我需要负下标。这是我的解决方案:
a= [1,3,4,5,2] for i in range(-1, -len(a), -1): print(i, a[i])
-1 2 -2 5 -3 4 -4 3 -5 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])
你也可以在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
reversed
range
range(5)
[0, 1, 2, 3, 4]
reversed(range(5))
[4, 3, 2, 1, 0]
for i in reversed(range(100)): print(i)
这对我很管用
for i in range(5)[::-1]: print(i,end=' ')
输出:4 3 2 10 0