如果只列出某个元素的名称,如何在列表中找到元素的位置?

时间:2015-05-29 00:44:35

标签: python list

例如,

在此列表中

myFile = ['aweys:5\n', 'baaa: 7\n']

如何以最快的方式找到包含' aweys'的元素的位置?

我试过了

if any('aweys' in s for s in myFile)

但我不确定如何找到字符串所在的列表中的哪个索引。

3 个答案:

答案 0 :(得分:3)

for i, val in enumerate(myFile):
    if 'aweys' in val:
        print 'aweys is found at index %d' % i

获取索引和字符串元组的其他方法

print filter(lambda s: 'aweys' in s[1], enumerate(myFile))

答案 1 :(得分:1)

def find(value, array):
    index = 0
    for val in array:
        if value in val:
            return index
        index += 1
    return -1

这会在value中找到array的第一次出现并返回该位置,如果找不到任何内容,则返回-1

如果您知道值的确切名称,可以使用[].index(item_value)

答案 2 :(得分:1)

对于包含每个索引的元组的列表(如果找到多个索引)和完整值,请尝试以下操作:

>>> myFile = ['aweys:5\n', 'baaa: 7\n']
>>> found = [(i, v) for i, v in enumerate(myFile) if 'aweys' in v]
>>> print(found)
[(0, 'aweys:5\n')]