我试着从100循环到0。在Python中如何做到这一点?
I在(100,0)范围内不成立。
有关为什么range以这种方式工作的讨论,请参见为什么slice和range是独占的?
我试着从100循环到0。在Python中如何做到这一点?
I在(100,0)范围内不成立。
有关为什么range以这种方式工作的讨论,请参见为什么slice和range是独占的?
当前回答
我想同时对两个列表进行反向循环,所以我需要负下标。这是我的解决方案:
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
其他回答
另一个解决方案:
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开始。
你也可以在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
我在代码学院的一个练习中尝试了这一点(在字符串中反转字符而不使用反转或::-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')
你可能想在python中使用反转函数。 在我们进入代码之前,我们必须记住范围 function总是返回一个列表(或者一个我不知道的元组),因此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