我需要检查某个特定属性的子列表,然后返回满足该属性的bin,但是作为原始列表的索引。目前我不得不手动完成这项工作:使子列表索引参考原始列表
sublist = mylist[start:end]
positive = search(sublist)
positive = start + positive
posiveList.append(positive)
有没有更优雅/习惯的方法来实现这个目标?
我需要检查某个特定属性的子列表,然后返回满足该属性的bin,但是作为原始列表的索引。目前我不得不手动完成这项工作:使子列表索引参考原始列表
sublist = mylist[start:end]
positive = search(sublist)
positive = start + positive
posiveList.append(positive)
有没有更优雅/习惯的方法来实现这个目标?
我想你问的是:
如果我搜索和子列表找到一个指标,有没有将其转化为它的索引在原始列表中一个简单的方法?
不,唯一的方法就是您已经在做的事情:您需要将start
偏移量添加回索引以获取原始列表中的索引。
这是有道理的,因为有子列表和原始列表之间没有实际关联。就拿这个例子比如:
>>> x = [1,2,3,4,5]
>>> y = x[1:3]
>>> z = [2,3]
>>> y == z
True
z
有丝毫不亚于y
到x
关系的有x
。尽管y
是使用切片语法创建的,但它仅仅是x
中一系列元素的副本 - 它仅仅是一个香草列表,并没有实际引用原始列表x
。由于y
内建的x
和y
之间没有任何关系,因此无法从y
指数返回原始x
-索引。
如果我正确理解了你,你想保存所有匹配元素的索引。
如果是这样,那么想你正在寻找这样的:
positiveList = [i for i, item in enumerate(mylist[start:end])
if validate_item(item)]
凡validate_item
应主要检查该项目是否需要与否,返回真/假。
如果您的搜索运营商支持它或可以修改以支持它,那么search(wholelist, startfrom, endat)
应该返回实际的索引。
请提供一个更好的示例,使其更清晰。 –