我有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'如上例所示。
答案 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