从 python 中的枚举列表打印

Print from enumerated list in python

我导入了一个文档。这些项目显示在列表中。我还从用户那里获取了输入,它告诉我该输入在列表中的位置。

如何打印出列表的那一行以及列表中该行上方和下方的项目?在我的列表中,我有 actorname of movieyearrole 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) 给我弹出列表中那一年的数字。如果它在那里两次,它会给我两个年份弹出的位置。我想打印那一年,然后打印列表中该项目上方和下方的位置。

您的快速解决方案是

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

无论如何,您的代码还有许多其他问题

这看起来干净多了。

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(hanksArray[i-1])
        print(hanksArray[i])
        print(hanksArray[i+1])