Таким образом, у меня есть список кортежей, таких как это:
[(1,"juca"),(22,"james"),(53,"xuxa"),(44,"delicia")]
Я хочу этот список для кортежа, числовое значение которого равно чему-то.
Так, чтобы, если я делаю search(53)
это возвратит индексное значение 2
Существует ли простой способ сделать это?
Хм ... ну, простой способ, который приходит на ум, - это преобразовать его в dict
d = dict(thelist)
и получить доступ к d [53]
.
РЕДАКТИРОВАТЬ : Ой, неправильно прочитал свой вопрос в первый раз. Похоже, вы действительно хотите получить индекс, в котором хранится данное число. В этом случае попробуйте
dict((t[0], i) for i, t in enumerate(thelist))
вместо простого старого преобразования dict
. Тогда d [53]
будет 2.
Вы можете использовать осмысление списка:
>>> a = [(1,"juca"),(22,"james"),(53,"xuxa"),(44,"delicia")]
>>> [x[0] for x in a]
[1, 22, 53, 44]
>>> [x[0] for x in a].index(53)
2
Ваши кортежи в основном являются парами ключ-значение -- python dict
-- так:
l = [(1,"juca"),(22,"james"),(53,"xuxa"),(44,"delicia")]
val = dict(l)[53]
Edit -- ага, вы говорите, что вам нужно значение индекса (53, "xuxa"). Если это действительно то, что вам нужно, вам придется просмотреть исходный список или, возможно, составить более сложный словарь:
d = dict((n,i) for (i,n) in enumerate(e[0] for e in l))
idx = d[53]