【发布时间】:2016-06-30 15:15:46
【问题描述】:
我有以下列表,其中第一个元素是通用值,第二个是该值的出现次数:
mylist=[(2, 45), (3, 21), (4, 12), (5, 7),
(6, 2), (7, 2), (8, 3), (9, 2),
(10, 1), (11, 1), (15, 1), (17, 2), (18, 1)]
我想计算作为每个元组的第二个元素出现的那些值的 CCDF(互补累积分布函数)。
我的代码:
ccdf=[(i,sum(k>=i for i in mylist)) for i,k in mylist]
但这不起作用,因为结果无效:
ccdf=[(2, 0), (3, 0), (4, 0), (5, 0),
(6, 0), (7, 0), (8, 0), (9, 0),
(10, 0), (11, 0), (15, 0), (17, 0), (18, 0)]
每个元组中第二个位置的值的总和是100。所以,我想知道我有多少次值> = 2(100-44 = 56),我有多少次值> = 3 (100-44-21=35),依此类推。结果将是:
ccdf=[(2, 56), (3, 35), (4, 23), (5, 16),
(6, 14), (7, 12), (8, 9), (9, 7),
(10, 6), (11, 5), (15, 4), (17, 3), (18, 1)]
我的列表理解有什么问题?
【问题讨论】:
-
为什么投反对票?我认为我们应该证明投票是合理的。我们不是吗?
标签: python list-comprehension find-occurrences cdf