我有一个功能:
def funky(a):
c = [4,5,6]
return c[a]
我希望能够致电:
funky(0:1)
和
funky(0,1)
得到相同的回应[4,5]。如何修改'funky'来做到这一点?
答案 0 :(得分:4)
您可以直接在列表中使用切片方法:
def funky(*a):
c = [4,5,6]
return c.__getitem__(*a)
print(funky(1, 3))
>>> [5, 6]
答案 1 :(得分:1)
输入slice(0,1)作为函数的参数。 0:1将无法工作,因为它不是可通过的参数。
答案 2 :(得分:1)
def funky(a,b):
c = [4,5,6]
return c[a:b+1]
你可以致电funky(0,1)
,但你不能像funky(
0:1 )
那样打电话。它不是一个有效的参数。
你可以像funky('0:1')
那样打电话。如果你需要将这种输入作为字符串输入,split
作为:
def funky(a):
c = [4,5,6]
x,y = map(int,a.split(':'))
return c[x:y+1]