假设我有这样一个清单:
[(9600002, 42, 3),
(9600001, 17, 3),
(9600003, 11, 1),
(9600002, 14, 5),
(9600001, 17, 1),
(9600003, 11, 4),
(9600001, 17, 4),
(9600001, 14, 3),
(9600002, 42, 6),
(9600002, 42, 1)]
第一个数字是用户编号,第二个数字是电视节目编码,第三个数字是季节编号。在
我如何找出订阅超过一季的节目编码,然后打印用户id和电视节目编码?例如:
^{pr2}$或者你对我应该应用哪种数据结构有什么建议吗?在
有很多方法可以完成这项任务
输出:
^{pr2}$输出:
^{4}$最后,您还可以尝试手动方式,而不是使用任何导入:
输出:
^{pr2}$一种方法是使用
collections.Counter
。在其思想是使用字典计算每个(用户、程序)组合的序列数。在
然后通过字典理解过滤大于1的计数。在
关于计数器与defaultdict(int)的说明
Counter
的速度是defaultdict(int)
的两倍,请参阅下面的基准测试。如果性能很重要,并且这些功能都与您无关,您可以轻松切换到defaultdict(int)
:Counter
键don't get added automatically。在Counter
对象。在Counter
提供additional methods,例如elements
,most_common
。在Python3.6.2的基准测试。在
^{pr2}$相关问题 更多 >
编程相关推荐