3

我想要做的是能够通过我的字典并一次成对地打印出两个值,而不会加倍它们。所以如果我有:

dict = {'player1':'Bob' , 'player2':'John', 'player3':'Greg', 'player4':'Tim'}

我希望它能够将它分成两对而不加倍。所以我可以得到

Bob 和 John、Greg 和 Tim 或 Bob 和 Greg、John 和 Tim。

对不起,如果我没有很好地解释这一点,但希望你明白我的意思。

4

2 回答 2

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())

获取按字母顺序排列的玩家列表。否则顺序将是任意的。

仅适用于偶数个玩家。

于 2013-02-22T08:58:36.103 回答
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')
于 2013-02-22T08:57:55.017 回答