Python 使子列表索引引用原始列表
我需要检查某个特定属性的子列表,然后返回满足该属性的bin,但作为原始列表的索引。目前,我必须手动执行此操作:Python 使子列表索引引用原始列表,python,Python,我需要检查某个特定属性的子列表,然后返回满足该属性的bin,但作为原始列表的索引。目前,我必须手动执行此操作: sublist = mylist[start:end] positive = search(sublist) positive = start + positive posiveList.append(positive) 有没有更优雅/惯用的方法来实现这一点?如果我理解正确,您希望保存所有匹配元素的索引 如果是这样,那么认为您正在寻找: positiveList = [i for
sublist = mylist[start:end]
positive = search(sublist)
positive = start + positive
posiveList.append(positive)
有没有更优雅/惯用的方法来实现这一点?如果我理解正确,您希望保存所有匹配元素的索引 如果是这样,那么认为您正在寻找:
positiveList = [i for i, item in enumerate(mylist[start:end])
if validate_item(item)]
其中,
validate\u item
应该检查此项是否为必需项,并返回True/False。如果我理解正确,您希望保存所有匹配元素的索引
如果是这样,那么认为您正在寻找:
positiveList = [i for i, item in enumerate(mylist[start:end])
if validate_item(item)]
其中,
validate\u item
基本上应该检查该项是否为必需项,并返回True/False。我想你要问的是:
如果我在子列表中搜索并找到索引,是否有一种简单的方法将其转换为原始列表中的索引
不,唯一的方法是您已经在做的事情:您需要将开始
偏移量添加回索引,以获得原始列表中的索引
这是有意义的,因为子列表和原始列表之间没有实际关联。以这个例子为例:
>>> x = [1,2,3,4,5]
>>> y = x[1:3]
>>> z = [2,3]
>>> y == z
True
z
与x
的关系与y
与x
的关系一样密切。尽管y
是使用切片语法创建的,但它只是x
中一系列元素的副本-它只是一个普通列表,没有对原始列表的实际引用x
。由于x
和y
之间没有关系,因此无法从y
-索引中获取原始x
-索引。我想你要问的是:
如果我在子列表中搜索并找到索引,是否有一种简单的方法将其转换为原始列表中的索引
不,唯一的方法是您已经在做的事情:您需要将开始
偏移量添加回索引,以获得原始列表中的索引
这是有意义的,因为子列表和原始列表之间没有实际关联。以这个例子为例:
>>> x = [1,2,3,4,5]
>>> y = x[1:3]
>>> z = [2,3]
>>> y == z
True
z
与x
的关系与y
与x
的关系一样密切。尽管y
是使用切片语法创建的,但它只是x
中一系列元素的副本-它只是一个普通列表,没有对原始列表的实际引用x
。由于内置于y
中的x
和y
之间没有关系,因此无法从y
-索引中获取原始x
-索引。如果您的搜索操作符支持它或可以修改以支持它,则搜索(wholelist,startfrom,endat)
应返回实际索引。如果您的搜索操作符支持该索引,或者可以修改以支持该索引,则搜索(wholelist,startfrom,endat)
应返回实际索引。请提供更好的示例使其更清晰。请提供更好的示例使其更清晰。