我想反转一个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
答案 0 :(得分:5)
这是一种简单的方法:
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')
输出:
4 5 6 7 8
答案 1 :(得分:0)
您可以使用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:来扭曲您的声明,否则,如果用户在列表中未输入数字,则会出现ValueError。
如果用户输入列表中的第一个元素,否则将获得意外的价值。
答案 2 :(得分:0)
我的理解是,您需要在列表中找到输入值的索引,并将列表从索引前的一个值切到末尾:
start = Hello.index(user_input) - 1
print(Hello[start:])
答案 3 :(得分:0)
如果要反转列表,可以使用list.reverse()
。
这样,该代码即可完成您所提及的内容,您可以使用以下代码:
Hello = [1,2,3,4,5,6,7,8]
a = int(input("Please input your number: "))
if a <= len(Hello):
Hello.reverse()
print(Hello[:a])
else:
print("The value is too big")