Проверьте документацию на sequence types и list methods.
Чтобы посмотреть на конкретный элемент в списке используется его индекс:
>>> x = [4, 2, 1, 0, 1, 2]
>>> x[3]
0
Чтобы найти индекс определенного значения, используйте list.index()
:
>>> x.index(1)
2
Некоторые более подробную информацию о точно, что вы пытаетесь сделать это было бы полезно, но было бы полезно использовать list comprehension для получения индексов всех интересующих вас элементов, например:
>>> [i for i, v in enumerate(x) if v == 1]
[2, 4]
Вы могли бы сделать что-то вроде этого:
ones = [i for i, v in enumerate(your_list) if v == 1]
if len(ones) > 1:
# each element in ones is an index in your_list where the value is 1
Кроме того, имя переменной list
это плохая идея, потому что он конфликтует с встроенным типом списка.
редактировать: В вашем примере вы используете your_list.count(1) > 1
, это будет только справедливо, если есть два или более вхождения 1
в списке. Если вы просто хотите узнать, есть ли в списке 1
, используйте 1 in your_list
вместо list.count()
.
Вы можете использовать list.index()
, чтобы найти элементы в списке, кроме первого, но вы должны взять кусочек списка, начиная с одного элемента после предыдущего матча, например:
your_list = [4, 2, 1, 0, 1, 2]
i = -1
while True:
try:
i = your_list[i+1:].index(1) + i + 1
print("Found 1 at index", i)
except ValueError:
break
Этот должен дать следующий вывод:
Found 1 at index 2
Found 1 at index 4
Спасибо за эти идеи. Я пробовал использовать метод индекса раньше, но после чтения в документации о том, как он будет смотреть только на первый х в списке, я решил, что он не может быть использован для этого экземпляра. Хотя здесь, похоже, вы показали, как его можно использовать с этим номером. Кроме того, я фактически не использую список как мое имя списка, которое я только что сделал для примера. Другое дело, комментарий для второго примера, в котором говорится «# Номер здесь нет», как это было бы на самом деле написано на Python? Еще раз спасибо! – cbbcbail
Я думаю, что вы, должно быть, неправильно прочитали документацию: я нигде не слышал о методе 'index', который просматривал только первые * x * элементы в списке и считал бы критическую ошибку в любой реализации Python. – FatBusinessman
Что касается комментария, если он написан как комментарий, он будет написан точно так, как он появляется. Если вы имеете в виду «как бы вы выразили это в коде», это полностью зависит от контекста: оператор 'pass' просто означает« ничего не делать », что приводит к тому, что оба примера ведут себя одинаково. – FatBusinessman