我导入了一份文件。这些项目显示在列表中。我还从用户那里获取了输入,并告诉我输入在列表中的位置。
我如何打印列表中的那一行以及列表中该行上方和下方的项目?在我的列表中,我有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)
为我提供了弹出的年份列表中的数字。如果它有两次它给我两个斑点,一年弹出。我想打印那一年,然后打印列表中该项目上方和下方的位置。
答案 0 :(得分:1)
for i in [i for i, x in enumerate(hanksArray) if x == hanksYear]:
print(hanksArray[i-1])
print(hanksArray[i])
print(hanksArray[i+1])
答案 1 :(得分:0)
快速解决方案将是
for i in [i for i, x in enumerate(hanksArray) if x == hanksYear]:
print("\n".join(hanksArray[i-1:i+2]))
无论如何,您的代码还存在许多其他问题
答案 2 :(得分:0)
这看起来更清洁了。
for line,val in enumerate(hanksArray):
if val == hanksYear:
print(hanksArray[line-1])
print(val)
print(hanksArray[line+1])