猿问

如何正确切片 for 循环?

我想反转 for 循环,使其在用户输入的某个值处停止。

例如,如果有一个列表Hello = [1,2,3,4,5,6,7,8] 并且用户输入 5 有没有办法获得输出

4

5

6

7

8

我试过了

user_input = str(input(''))
for i in range(user_input):
   print(Hello[-i -1])

例如我输入 5,

我得到输出

8

7

6

5

4


梵蒂冈之花
浏览 209回答 3
3回答

HUX布斯

这是一个简单的方法:user_input = int(input())Hello = [1,2,3,4,5,6,7,8]print(Hello[-user_input:])输出:[4, 5, 6, 7, 8] 如果您希望每个数字都打印在自己的行上,您可以这样做:user_input = int(input())Hello = [1,2,3,4,5,6,7,8]print(*Hello[-user_input:], sep='\n')输出:45678

慕哥6287543

我的理解是您需要在列表中找到输入值的索引,并将列表从索引之前的一个值切片到末尾:start = Hello.index(user_input) - 1print(Hello[start:])

富国沪深

您可以使用 python 切片和索引方法来实现这一点。index() 方法在列表中查找给定元素并返回其位置。代码:hello = [1,2,3,4,5,6,7,8]i = int(input('enter number: '))if i in hello and hello.index(i) > 0:    print(l[hello.index(i)-1:])else:    print('cant do this')笔记:您应该检查该元素是否存在于列表中或使用 try: except 扭曲您的语句,否则如果用户输入的数字不在列表中,您将得到 ValueError。您还应该实现如果用户输入列表中的第一个元素时该怎么做,否则您会得到意外的值。
随时随地看视频慕课网APP

相关分类

Python
我要回答