1

请耐心等待。我是 Python 新手,才 1 个月。在这个项目中,我导入了一个文件,该文件模拟了具有相关分数的名称列表。我很难创建一个循环来打印出第一个索引及其相关对。我的程序需要将玩家列表分成两半,并使用列表的每一半中的玩家生成对。例如,如果有 10 个玩家按等级排序,玩家 1 扮演玩家 6,2 扮演玩家 7,以此类推。

有人可以给我一个正确方向的快速指南吗?我的示例代码如下,一旦完成,我需要把它变成一个具有工作功能的程序。

def main():

    myfile = open('CHESS.txt','r')

    players = []

    for line in myfile:
        line = line.rstrip('\n')
        players.append(line)
        players.sort()


    for i in players:
        m=len(players)/2
        print(players[0], players[0+m])


    myfile.close()

main()
4

2 回答 2

1

你很近。您只需要为i列表中的每个元素使用一个索引。

m=len(players)/2
for i in range(m):
    print(players[i], players[i+m])

请注意,这需要您拥有偶数个玩家。

于 2013-10-29T18:25:04.557 回答
1

经典用例zip

>>> players = ["Player{}".format(i) for i in range(20)]
>>> half = len(players)/2
>>> pairs = zip(players[:half], players[half:])
>>> pairs
[('Player0', 'Player10'), ('Player1', 'Player11'), ('Player2', 'Player12'), ('Player3', 'Player13'), ('Player4', 'Player14'), ('Player5', 'Player15'), ('Player6', 'Player16'), ('Player7', 'Player17'), ('Player8', 'Player18'), ('Player9', 'Player19')]
于 2013-10-29T18:35:30.790 回答