Python 如何正确地为循环切片?
我想反转for循环,使其在用户输入的某个值处停止 例如,如果有一个列表Python 如何正确地为循环切片?,python,python-3.x,list,Python,Python 3.x,List,我想反转for循环,使其在用户输入的某个值处停止 例如,如果有一个列表Hello=[1,2,3,4,5,6,7,8] 用户输入一个5 有没有办法获得输出 四, 五, 六, 七, 八, 我试过了 user_input = str(input('')) for i in range(user_input): print(Hello[-i -1]) 比如我输入5 我得到输出 八, 七, 六, 五, 4这是一个简单的方法: user_input = int(input()) Hello
Hello=[1,2,3,4,5,6,7,8]
用户输入一个5
有没有办法获得输出
四,
五,
六,
七,
八,
我试过了
user_input = str(input(''))
for i in range(user_input):
print(Hello[-i -1])
比如我输入5
我得到输出
八,
七,
六,
五,
4这是一个简单的方法:
user_input = int(input())
Hello = [1,2,3,4,5,6,7,8]
print(Hello[-user_input:])
输出:
4
5
6
7
8
[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
您可以使用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')
注意:
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
如果用户输入列表中的第一个元素,或者您将获得意外值,您还应该实现该操作。我的理解是,您需要在列表中找到输入值的索引,并将列表从索引前的一个值切片到最后:
start = Hello.index(user_input) - 1
print(Hello[start:])
如果要反转列表,可以使用
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")
Hello=[1,2,3,4,5,6,7,8]
a=int(输入(“请输入您的号码:”)
如果尝试:将输入转换为整数,在列表中找到元素的索引,然后对列表进行切片。那么您希望[8,7,6,5,4]
还是[4,5,6,7,8]
?4,5,6,7,8
连接到输入的5
?是否要打印最后5个数字?你所说的“中断”是什么意思?这个标题有误导性。这是关于切片,而不是反转。对于用户输入=9,返回什么?当我打印时(hello[-user\u input:,sep='\n')我仍然得到[4,5,6,7,8]@BobKim你忘记了*
在print(*hello…
它用于将列表解压到打印函数。你可以通过简单的谷歌搜索阅读更多关于解压列表/元组的内容:)@BobKim btw,如果您觉得我的回答对您有帮助,请随时将其标记为已接受:)