带有元组的python列表迭代存在并获取索引

时间:2015-04-03 19:27:14

标签: python list list-comprehension

我有python列表,它有元组,我想检查列表中所有元组中元组的第一个元素,我设法按如下方式执行:

x = [('a',1), ('b',2), ('c',3)]
if 'a' in ([y[0] for y in x]):
    //how to get the index of the tuple that 'a' exist

我想要的元组索引是什么' a'如上例所示。

1 个答案:

答案 0 :(得分:2)

您可以使用next()

next(i for i in xrange(0, len(x)) if x[i][0] == 'a')

请注意,如果找不到a,您将获得StopIteration例外。您还可以提供默认值以返回值:

next((i for i in xrange(0, len(x)) if x[i][0] == 'd'), -1)

演示:

>>> next(i for i in xrange(0, len(x)) if x[i][0] == 'a')
0
>>> next((i for i in xrange(0, len(x)) if x[i][0] == 'd'), -1)
-1

此处也可以使用

enumerate()来获取索引值:

>>> next(i for i, (a, _) in enumerate(x) if a == 'a')
0
>>> next((i for i, (a, _) in enumerate(x) if a == 'd'), -1)
-1