我和一群人“打赌”哪支球队会在不同的足球比赛中获胜(不涉及金钱)。有三种可能性可以给玩家加分。在
points = [0, 3, 4]
所以,如果我说A队将以1比0获胜。在
所以,对于那个特定的赌注,我可以得到0,3,或4分。其他参与赌博的人也一样。所以我试图得到所有可能的结果组合。对于两个玩家,我希望能够获得这种输出(例如两个玩家):
"Player 1" 0 0 0 3 3 3 4 4 4
"Player 2" 0 3 4 0 3 4 0 3 4
我以前有一个Excel文件,用VBA计算这些可能的结果,但是播放器的数量是固定的,所以代码不适合添加或删除播放器。在
我正在尝试创建一个函数,它可以计算并输出一些数据结构以及所有可能的结果组合,用于不同(和动态)数量的玩家。在
我读过一些关于python中组合的问题(10+),但是这些问题都没有涉及到这个特定的场景。它们通常包括使用itertools
进行排列(不是这种情况,因为我们都可以得到相同的结果),对于多个组合(如果组合的数量超过了可能结果的值(3),就不起作用了。我确实设法得到了与我需要的东西相似的东西:
结果是一个元组序列,其中包含可能结果的字符串值:
('0', '0')
('0', '3')
('0', '4')
('3', '0')
('3', '3')
('3', '4')
('4', '0')
('4', '3')
('4', '4')
但是作为字符串,我不能对它们执行任何操作或计算统计。。。在
有没有任何方法可以使用itertools来实现这一点? 有人会建议完全不同的方法吗?我愿意接受任何解决办法。 有没有哪种类型的球员可以把结果合并到一起?提前感谢…
首先不需要将值转换为字符串!在
这将为您排序整数对。在
具体来说,你想要的是你的积分列表的笛卡尔积,它本身是n次(其中n是玩家的数量)。这正是带有
repeat
关键字的itertools.product
所得到的结果。在相关问题 更多 >
编程相关推荐