使用索引查找Python列表

时间:2016-11-07 20:27:02

标签: python python-3.x

我想知道如果你只有一部分,你会如何找到列表中元素的索引。例如

list = ["this", "is", "an", "example", "for", "python"]

如果你只有"pyt"并且需要python ???

的索引,你会怎么找到它?

4 个答案:

答案 0 :(得分:1)

直接循环:

def find_starts(val, my_list):
    for i, v in my_list:
       if v.startswith(val):
           return i

(如果没有匹配则返回None。)这可以使列表理解更加简洁:有关详细信息,请参阅this related question

答案 1 :(得分:1)

由于问题不是100%清楚,我假设您要查找包含指定字符串的所有项目。

alist = ["this", "is", "an", "example", "for", "python"]

val = 'is'

def find_in_list(alist, val):
    res = []
    for e, v in enumerate(alist):
       if val in v:
           res.append(e)
    return res

find_in_list(alist, val)

答案 2 :(得分:0)

你必须使用一个在某个元素相似的情况下有效的解决方案(例如["foo", "asd", "foobar"]并且你有"foo"将被检测为正确的元素吗?)

给定的函数将返回索引列表,这些索引被标识为正确的元素。

def find(foo, list):
   #Find similar elements
   similarElements = [e for e in list if foo in e]
   #Find their indexes
   indexes = [similarElements.index(i) for i in similarElements]
   return indexes

这个解决方案不是最快捷的方式,但是简单易懂。

答案 3 :(得分:0)

>>> list = ["this", "is", "an", "example", "for", "python"]
>>> word = "python"
>>> y = [i for i,j in enumerate(list) if j == word]
>>> y
[5]

然而,这是为了整个词,试试这个。

>>> word = "py"
>>> for w in list:
...     if word in w:
...             sus.append(w)
...             print(sus)
...
['python']