从python中的枚举列表打印

时间:2015-10-23 19:19:00

标签: python list numbered-list

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

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

3 个答案:

答案 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])