当我打印清单上的项目时,如何编号?

时间:2019-05-01 16:44:24

标签: python list for-loop

我正在重做一项尚未获得满分的作业,而且我似乎不明白如何用数字标记清单,还试图将其打印在同一行上。

我尝试将数字添加到列表中,因此进行分类,但这并不是我的导师想要的。她要我使用for循环计数器为列表中的项目编号。

games = ["Super Mario Maker 2", "Bayonetta 3", "Dark Souls 4", "Astral Chain", "Persona 5 Royale"]

for n in range(0, len(games)):
    print("Game: " + games[n])

当前,这会打印出列表中从星号到末尾的所有内容。它以Game :(列表中的第一项)开始,依此类推。我试图弄清楚如何对它们进行标记,以使其打印出类似Game 1: (1st item), Game 2: (2nd item)之类的东西,并用逗号将所有内容打印在一行上。

6 个答案:

答案 0 :(得分:1)

使用enumerate

for idx, val in enumerate(games): 
      print('{}: {}'.format(idx, val))
# Out:
# Game 0: Super Mario Maker 2
# Game 1: Bayonetta 3
# Game 2: Dark Souls 4
# Game 3: Astral Chain
# Game 4: Persona 5 Royale

或使用enumerate选项start

for idx, val in enumerate(games, start=1): 
    print('{}: {}'.format(idx, val))
# Out:
# Game 1: Super Mario Maker 2
# Game 2: Bayonetta 3
# Game 3: Dark Souls 4
# Game 4: Astral Chain
# Game 5: Persona 5 Royale

一行:

print(*['Game {}: {}'.format(i, v) for i,v in enumerate(games, start=1)], sep='\n')  

答案 1 :(得分:1)

使用enumerate

for counter, value in enumerate(some_list):
    print(counter, value)

因此,例如:

for i, game in enumerate(games):
   print("Game {0}: {1}".format(i+1, game))

对于Python 3.6或更高版本:

for i, game in enumerate(games):
    print(f"Game {i + 1}: {game}")

您还可以看到,f字符串非常有用,并且对您要尝试的操作非常有用!

编辑:单行打印:

print(', '.join([f"Game {i + 1}: {game}" for i, game in enumerate(games)]))

答案 2 :(得分:1)

您可以根据列表中每个项目的索引使用连接和格式字符串在列表中打印所有项目。

', '.join(f'Game {i+1}: {games[i]}' for i in range(len(games)))

结果:

'Game 1: Super Mario Maker 2, Game 2: Bayonetta 3, Game 3: Dark Souls 4, Game 4: Astral Chain, Game 5: Persona 5 Royale'

答案 3 :(得分:0)

将n添加到输出中。

for n in range(0, len(games)): 
    print("Game {}: {}".format(n, games[n]))

答案 4 :(得分:0)

这实际上非常简单,您可以使用:

games = ["Super Mario Maker 2", "Bayonetta 3", "Dark Souls 4", "Astral Chain", "Persona 5 Royale"]

print(', '.join(f'Game {i}: {game}' for i, game in (enumerate(games, start=1))))
  

输出:

Game 1: Super Mario Maker 2, Game 2: Bayonetta 3, Game 3: Dark Souls 4, Game 4: Astral Chain, Game 5: Persona 5 Royale

答案 5 :(得分:-1)

在游戏结束后将其添加到字符串中

str(n+1) 

所以应该是这样

'game '+str(n+1) +' rest of the string'