我想要做的是能够通过我的字典并成对地一次打印两个值,而不会加倍。 如果我有:
dict = {'player1':'Bob' , 'player2':'John', 'player3':'Greg', 'player4':'Tim'}
我希望它能够将它分成两对,而不会倍增。 所以我可以得到
鲍勃和约翰,格雷格和蒂姆或鲍勃和格雷格,约翰和蒂姆。
很抱歉,如果我没有很好地解释这一点,但希望你明白我的意思。
答案 0 :(得分:4)
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())
获取按字母顺序排列的玩家列表。否则订单将是任意的。
仅适用于偶数玩家。
答案 1 :(得分:2)
>>> 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')