gpt4 book ai didi

python - 在一行中计算彩票中奖券的功能

转载 作者:行者123 更新时间:2023-11-28 22:01:15 27 4
gpt4 key购买 nike

我有 Lotto(彩票)的优惠券:

coupons = [[1,4,7,34,45,67], [2,8,16,34,35,38] ... ]

和结果:

result = [7,12,13,26,29,34]

我如何计算我在优惠券上的中奖号码在线?我想要返回统计信息,例如:

statistics = [20, 15, 11, 1, 0, 0, 0]

在哪里

统计[0] - 中奖号码为0的优惠券数量,

统计[1] - 有 1 个中奖号码的优惠券数量,

统计[2] - 有2个中奖号码的优惠券数量,

统计[3] - 有3个中奖号码的优惠券数量,

统计[4] - 4个中奖号码的优惠券数量,

统计[5] - 5个中奖号码的优惠券数量,

统计[6] - 6个中奖号码的优惠券数量

最佳答案

试试这个:

from collections import Counter

coupons = [[1,4,7,34,45,67] , [2,8,16,34,35,38],
[7,12,13,26,29,34], [1,2,3,4,5,6]]
result = [7,12,13,26,29,34]

answer = Counter([6-len(set(result)-set(s)) for s in coupons])

最后一行是请求的一行。请注意,我必须更改内部使用的数据结构才能使其正常工作 - 优惠券和结果现在均以集合表示,并且结果存储在 Counter 中。 (一种特殊的字典),但所有实际目的的答案都表现为一个数组:

answer[0]
> 1

...

answer[6]
> 1

更新

好的,我成功地在一行中压缩了对实际列表的转换。它高效(你最好使用我上面的第一个解决方案)但是见鬼,它有效并且在一行中:

[Counter([6-len(set(result)-set(s)) for s in coupons])[x] for x in xrange(7)]

关于python - 在一行中计算彩票中奖券的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260234/

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