我想尝试两个随机的整数,然后将相应的编号的东西从列表中切出来,但是我不确定我应该做什么。它说[r1:r2]中的冒号不正确。
from random import*
#2
z=['cats','dogs','soccer','weather','whale','tennis']
def slicer(ls):
r1=randrange(0,5)
r2=randrange(0,5)
for x in ls:
[r1:r2]
return('The slice from '+str(r1)+' to '+str(r2)+' is: ' + ls)
print(slicer(z))
答案 0 :(得分:1)
你正试图切片。 [r1:r2]是无效的python语法。
我认为你想做的事情是:
sliced = ls[r1:r2]
但即使这样也不太可能做你想要的,因为切片中的第二个数字需要更高。
对你似乎想做的事情采取更正确的方法(但我不是一个思想领袖)
r1 = randrange(0,len(ls)-1)
r2 = randrange(0,len(ls)-r1-1) #Number of items to slice, -1
slice = ls[r1:r1+r2]
这将返回列表的子部分,至少1个项目
答案 1 :(得分:0)
那是因为为了切片,你需要一个列表(或类似对象的序列)来获取切片。
你可能想做的只是return ls[r1:r2]
。
答案 2 :(得分:0)
我想我明白了
from random import*
z=['cats','dogs','soccer','weather','whale','tennis']
def slicer(ls):
r1=randrange(0,5)
r2=randrange(0,5)
if (r1<r2):
return('The slice from '+str(r1)+' to '+str(r2)+' is: ' + str(ls[r1:r2]))
else:
return('The slice from '+str(r2)+' to '+str(r1)+' is: ' + str(ls[r2:r1]))
print(slicer(z))