Python 使用基于变量的索引对列表进行切片
如何使用基于变量的索引对列表进行切片 i、 ePython 使用基于变量的索引对列表进行切片,python,variables,indexing,splice,Python,Variables,Indexing,Splice,如何使用基于变量的索引对列表进行切片 i、 e splitMe=范围(0,10) 起始位置=3 终点=5 splitMe[startPlace:endPlace]#问题似乎是,当您找到所需的值时,您在所有的时间中都在不停地迭代。因此,在两个循环的末尾,a和c处于其最大值。一旦找到所需的值,您可能想中断循环?为什么不使用Python中内置的拼接语法?(也许我没看到什么) 比如: list=[1,2,3,4,5,6,7,8,9] a=3 c=7 split_list=list[a:(c+1)]#提示
splitMe=范围(0,10)
起始位置=3
终点=5
splitMe[startPlace:endPlace]#问题似乎是,当您找到所需的值时,您在所有的时间中都在不停地迭代。因此,在两个循环的末尾,a
和c
处于其最大值。一旦找到所需的值,您可能想中断循环?为什么不使用Python中内置的拼接语法?(也许我没看到什么)
比如:
list=[1,2,3,4,5,6,7,8,9]
a=3
c=7
split_list=list[a:(c+1)]#提示:如果在slice_laser_c
行之前打印a,c
,您会看到什么?在任何情况下,如果查找开始索引和结束索引的标准只是一个等式检查,那么只需执行a=Time.find(startDate)
,而不是手动遍历列表。我发现这是个问题<代码>a=223632 c=223632
对不起。我的意思是Time.index
,而不是Time.find
。这压缩了我的代码!谢谢你的提示。这似乎已经解决了Kevin上面提到的问题,a
和c
现在报告为它们应该是的值(0
和5
)。现在我需要修正我的线路理解。我想我已经试过了,这正是我需要的。我尝试了list[start:end]
,但由于某种原因失败了。好的,非常感谢!
splitMe = range(0,10)
startPlace = 3
endPlace = 5
splitMe[startPlace:endPlace] #<------This is essentially what I need
#Find matching data with datetime
for a, line in enumerate (Time):
if line == startDate:
print "Slice starts at:", a
for c, line in enumerate (Time):
if line == endDate:
print "Slice ends at:", c
#Create lists
slice_laser_c = [x for x in laser_C if a <= x < c]
[] #<----- Essentially, this is the problem
big_list = range(0,10)
a = 2
c = 5
BetweenList = [x for x in big_list if a <= x < c]
print BetweenList
list = [1,2,3,4,5,6,7,8,9]
a=3
c=7
split_list = list[a:(c+1)] #<-----The +1 is because the splice syntax goes to end-1
print split_list