Печать из перечисленного списка в 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]))
В любом случае, есть много других проблем с вашим кодом