Как найти конкретный индекс по его содержанию

#python #list #indexing

Вопрос:

 wordlist = open(r'C:UsersislamDesktop10k most passwords.txt')

for words in wordlist:
    line = (words.split())  
    for count, ele in enumerate(wordlist, 1):
        x=(([count, ele]))
        print(x)
 

Вывод :

[9994, «хугохугон»]

[9995, ‘восемьдесятn’]

[9996, ‘epsonn’]

[9997, «евангелия»]

[9998, ‘eeeee1n’]

[9999, ‘eyphed’]

Как я мог бы найти индекс 0 , введя его содержимое, например, ввод 9995, а вывод будет :

[9995, ‘восемьдесятn’]

Ответ №1:

Это один из подходов:

 with open('path/to/file') as file:
    data = file.readlines()


while True:
    try:
        user_input = int(input('Enter index:'))
        if user_input < 1:
            raise ValueError
        print(data[user_input - 1].strip())
    except (ValueError, IndexError):
        print('Invalid index value')
 

Я бы сказал, довольно просто, так как, если вы разделите по строкам чтения, это уже список, и к нему можно получить доступ с помощью индексов (вычтите 1 из 1 для «начального» индекса), остальная часть кода, включающая обработку ошибок, предназначена для удобства пользователя.

Просто для получения значения из «жестко закодированного» индекса:

 with open('path/to/file') as file:
    data = file.readlines()

index = 5    
print(data[index - 1])
 

Комментарии:

1. Спасибо , что сработало!!, Я хочу когда-нибудь быть похожим на тебя, я потратил 1 час, думая, как это сделать, все, что я могу сказать.

2. есть проблема, когда я удаляю ввод и добавляю число в значение user_input, делая бесконечный цикл со словом

3. @Islamhamdi ну да, почему не сделать это input() потому, что входные остановки все и ждет, пока пользователь вводит что-то, если вы хотите указать индекс в коде, просто так print(data[put_index_here - 1].strip()) ( .strip() не надо, он просто удаляет этот завершающий перевод строки) ( put_index_here просто поставить фактическое число, как: print(data[5 - 1]) ) ( -1 «пуск» индексировать с 1) (и код в этом случае может быть просто как 3 линии)

4. Я обновил код, чтобы включить образец того, что я упомянул в другом комментарии

5. хорошо, но если вы вводите индекс в коде, то нет особой необходимости во всех этих попытках и других вещах, вы можете просто сделать так, как я сделал в своем ответе, внизу я добавил код, чтобы, если вы хотите указать индекс в коде, вы могли бы сохранить эти попытки, за исключением тех случаев, когда вам действительно нужно

Ответ №2:

вы можете попробовать это:

 list.index(element, start, end)

element - the element to be searched
start (optional) - start searching from this index
end (optional) - search the element up to this index
 

В месте списка вы пишете свое имя в списке.
Я думаю, что это может помочь