我想要做的是能够通过我的字典并一次成对地打印出两个值,而不会加倍它们。所以如果我有:
dict = {'player1':'Bob' , 'player2':'John', 'player3':'Greg', 'player4':'Tim'}
我希望它能够将它分成两对而不加倍。所以我可以得到
Bob 和 John、Greg 和 Tim 或 Bob 和 Greg、John 和 Tim。
对不起,如果我没有很好地解释这一点,但希望你明白我的意思。
我想要做的是能够通过我的字典并一次成对地打印出两个值,而不会加倍它们。所以如果我有:
dict = {'player1':'Bob' , 'player2':'John', 'player3':'Greg', 'player4':'Tim'}
我希望它能够将它分成两对而不加倍。所以我可以得到
Bob 和 John、Greg 和 Tim 或 Bob 和 Greg、John 和 Tim。
对不起,如果我没有很好地解释这一点,但希望你明白我的意思。
d = {'player1':'Bob' , 'player2':'John', 'player3':'Greg', 'player4':'Tim'}
players = list(d.values())
print(', '.join('{} and {}'.format(players[i], players[i+1]) for i in range(0, len(players), 2)))
打印(例如):
John and Greg, Bob and Tim
您可以将第二行替换为
players = sorted(d.values())
获取按字母顺序排列的玩家列表。否则顺序将是任意的。
仅适用于偶数个玩家。
>>> import random
>>> D = {'player1':'Bob' , 'player2':'John', 'player3':'Greg', 'player4':'Tim'}
>>> players = D.values()
>>> random.shuffle(players) # I'm guessing you don't want fixed pairs
>>> for i in zip(*[iter(players)]*2):
... print i
...
('Bob', 'Tim')
('Greg', 'John')