Печать из перечисленного списка в python

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

Как мне распечатать эту строку списка и пункт выше и ниже этой строки в списке? В моем списке есть actor, name of movie, year, а также role the actor played, Средняя линия - это год, поэтому у меня есть пользовательский поиск, и он должен распечатать название фильма и роль, которую они сыграли.

tom = open("TomHanks.txt", "r")
hanksYear = (input('What year would you like to see Tom Hanks movies?'))
hanksRead = tom.readlines()

with open("TomHanks.txt", "r") as f:
    hanksArray = f.read().splitlines()

for i in [i for i, x in enumerate(hanksArray) if x == hanksYear]:
    print(i)

print(i) дает мне номер в списке, который всплывает год. Если он будет там дважды, это даст мне обе точки, в которых всплывает год. Я хотел бы напечатать этот год, а затем напечатать место выше и ниже этого пункта в списке.

3 ответа

Решение

Написание решения в ответе отдельно для удобства чтения других.

for i in [i for i, x in enumerate(hanksArray) if x == hanksYear]:
        print(hanksArray[i-1])
        print(hanksArray[i])
        print(hanksArray[i+1])

Это выглядит намного чище.

for line,val in enumerate(hanksArray):
    if val == hanksYear:
        print(hanksArray[line-1])
        print(val)
        print(hanksArray[line+1])

Быстрое решение для вас будет

for i in [i for i, x in enumerate(hanksArray) if x == hanksYear]:
    print("\n".join(hanksArray[i-1:i+2]))

В любом случае, есть много других проблем с вашим кодом

Другие вопросы по тегам