Python: поиск элемента в списке [дубликат]

var b = [];
var a = [];
a[0] = b;
b[0] = a;

Печать a или b вернет Circular.

142
задан Benyamin Jafari 15 November 2018 в 16:51
поделиться

5 ответов

Лучший способ состоит в том, чтобы, вероятно, использовать метод .index списка.

Для объектов в списке, можно сделать что-то как:

def __eq__(self, other):
    return self.Value == other.Value

с любой специальной обработкой Вас нуждаются.

можно также использовать для/в оператора с, перечисляют (прибытие)

Пример нахождения индекса объекта, который имеет значение> 100.

for index, item in enumerate(arr):
    if item > 100:
        return index, item

Источник

53
ответ дан tedder42 15 November 2018 в 16:51
поделиться

От погружение в Python :

>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', 'two', 'elements']
>>> li.index("example")
5
261
ответ дан stivlo 15 November 2018 в 16:51
поделиться

как этот?

def global_index(lst, test):
    return ( pair[0] for pair in zip(range(len(lst)), lst) if test(pair[1]) )

Использование:

>>> global_index([1, 2, 3, 4, 5, 6], lambda x: x>3)
<generator object <genexpr> at ...>
>>> list(_)
[3, 4, 5]
1
ответ дан SingleNegationElimination 15 November 2018 в 16:51
поделиться
  • 1
    @Sam Hocevar: И ничто о том, из чего состоит состояние состязания или как сделать это без него. Едва ли помощь. – chaos 10 January 2012 в 15:34

Индексный метод списка сделает это для Вас. Если Вы хотите гарантировать порядок, отсортируйте список сначала с помощью sorted(). Отсортированный принимает, что cmp или основной параметр диктуют, как сортировка произойдет:

a = [5, 4, 3]
print sorted(a).index(5)

Или:

a = ['one', 'aardvark', 'a']
print sorted(a, key=len).index('a')
5
ответ дан Jarret Hardie 15 November 2018 в 16:51
поделиться

Существует index метод, i = array.index(value), но я не думаю, что можно определить пользовательский оператор сравнения. Не было бы трудно записать Вашу собственную функцию, чтобы сделать так, хотя:

def custom_index(array, compare_function):
    for i, v in enumerate(array):
        if compare_function(v):
            return i
8
ответ дан David Z 15 November 2018 в 16:51
поделиться
  • 1
    Ну, Вы don' t хотят сделать его слишком занятым; Вы должны usleep() некоторое время после каждого kill() это doesn' t находят процесс уведенным. Тогда необходимо установить равновесие между тем, насколько занятый опрос и сколько времени it' s хорошо для процесса для заканчиваний, прежде чем Вы заметите. – chaos 21 July 2009 в 07:41
Другие вопросы по тегам:

Похожие вопросы: