比如说,我有一个 list
>>> l = [2, 3, 4, 5, 2, 3, 4, 2, 6, 4, 3]
我还有一个函数
>>> fn = lambda x: x%2
我想根据把 l 的每个元素作用到函数 fn 上
根据其返回值分类
>>> SOME_FUNCTION(fn, l)
{
0: [2, 4, 2, 4, 2, 6, 4],
1: [3, 5, 3, 3]
}
有这种工具吗? (虽然写一个也不麻烦)
感谢
比如说,我有一个 list
>>> l = [2, 3, 4, 5, 2, 3, 4, 2, 6, 4, 3]
我还有一个函数
>>> fn = lambda x: x%2
我想根据把 l 的每个元素作用到函数 fn 上
根据其返回值分类
>>> SOME_FUNCTION(fn, l)
{
0: [2, 4, 2, 4, 2, 6, 4],
1: [3, 5, 3, 3]
}
有这种工具吗? (虽然写一个也不麻烦)
感谢
|
newlifeSep 8, 2017
1
没有
|
|
lishunan246Sep 8, 2017
2
d = {}
for x in l: r = f(x) if r in d: d[r].append(x) else: d[r] = [x] 这样? |
|
3
@lishunan246
. def classify(classifier, container): . ret = defaultdict(list) . for i in container: . ret[classifier(i)].append(i) . return ret |
|
4
itertools.groupby
|
|
5
听你的需求像是 itertools.groupby,但是 group 要求先对数据进行 sort,不然会产生多组相同 key 的结果
|