为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确切片 for 循环?

如何正确切片 for 循环?

梵蒂冈之花 2021-11-16 16:04:25
我想反转 for 循环,使其在用户输入的某个值处停止。例如,如果有一个列表Hello = [1,2,3,4,5,6,7,8] 并且用户输入 5 有没有办法获得输出45678我试过了user_input = str(input('')) for i in range(user_input):    print(Hello[-i -1])例如我输入 5,我得到输出87654
查看完整描述

3 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

这是一个简单的方法:


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


查看完整回答
反对 回复 2021-11-16
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

我的理解是您需要在列表中找到输入值的索引,并将列表从索引之前的一个值切片到末尾:


start = Hello.index(user_input) - 1

print(Hello[start:])


查看完整回答
反对 回复 2021-11-16
?
富国沪深

TA贡献1790条经验 获得超9个赞

您可以使用 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。


您还应该实现如果用户输入列表中的第一个元素时该怎么做,否则您会得到意外的值。


查看完整回答
反对 回复 2021-11-16
  • 3 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信