gpt4 book ai didi

python,包含元组的列表,找到连续的数字

转载 作者:行者123 更新时间:2023-12-01 02:10:21 25 4
gpt4 key购买 nike

标题有点误导,但我无法用一行字来描述它。

我有一个如下所示的列表。

a = [(4, 2), (4, 3), (2, 1), (1, 0), (1, 4)]

使用此代码,列表已按元组的第一项排序。

a.sort( key = lambda x: x[0], reverse = True )

(我只是说列表已经排序,所以不需要排序)

假设元组的第一项是扑克玩家的分数,第二项是每个扑克玩家的名字。因此,上面的列表与此相同:

[ ( 分数 = 4,玩家 2 ),( 分数 = 4,玩家 3 ),( 分数 = 2,玩家 1 ),( 分数 = 1,玩家 0),( 分数 = 1,玩家 = 4) ]

有 5 名玩家,每个玩家的分数可以相同,也可以不同。

我想根据玩家的得分来评估他们,并希望在平局的情况下打印结果(当 . 所以,

Player 2 ties
Player 3 ties

Player 0 ties
Player 4 ties

玩家 2 和玩家 3 得分相同(得分 = 4),并且打平。另外,玩家 0 和玩家 4 打成平局,但由于他们的得分 (score = 1) 低于玩家 2 和 3,因此它们被打印在玩家 2 和 3 的下方。

如何在 Python 中执行此操作?

最佳答案

这是为itertools.groupby量身定做的问题:

>>> from itertools import groupby
>>> from operator import itemgetter
>>> L = [(4, 2), (4, 3), (2, 1), (1, 0), (1, 4)]
>>> for key, group in groupby(L, itemgetter(0)):
... group = list(group)
... if len(group) > 1:
... for k, player in group:
... assert k == key
... print(f'Player {player} ties')
... print()
...
Player 2 ties
Player 3 ties

Player 0 ties
Player 4 ties

关于python,包含元组的列表,找到连续的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48738530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com