Python总结心得:总结 Python中的数组字典

关于Python总结心得的问题,在definition of summarize中经常遇到, 我得到了以下字典:

我得到了以下字典:

mydict = {
  'foo': [1,19,2,3,24,52,2,6],          # sum: 109
  'bar': [50,5,9,7,66,3,2,44],          # sum: 186
  'another': [1,2,3,4,5,6,7,8],         # sum:  36
  'entry': [0,0,0,2,99,4,33,55],        # sum: 193
  'onemore': [21,22,23,24,25,26,27,28]  # sum: 196
}

我需要通过数组的总和有效地过滤和排序前 x 个条目。

例如,上面示例的前 3 名排序过滤列表将是

sorted_filtered_dict = {
  'onemore': [21,22,23,24,25,26,27,28], # sum: 196
  'entry': [0,0,0,2,99,4,33,55],        # sum: 193
  'bar': [50,5,9,7,66,3,2,44]           # sum: 186
}

我对 Python 相当陌生,并在 lambda 函数上链接一个 sum 和 filter 函数,但在实际的语法上挣扎。

7

这很容易做一个排序:

sorted(mydict.iteritems(), key=lambda tup: sum(tup[1]), reverse=True)[:3]

如果比率类似于这个 (3 / 5),这是合理的。如果它更大,你会想要避免排序 (O (n log n)),因为前 3 可以在 O (n) 中完成。例如,使用heapq,堆模块:

heapq.nlargest(3, mydict.iteritems(), key=lambda tup: sum(tup[1]))

这是 O(n + 3 log n),因为组装初始堆是 O(n)和重新 heapifying 是 O(log n)。

编辑:如果您使用的是 Python 2.7 或更高版本,则可以轻松转换为OrderedDictequivalent version适用于 Python 2.4 +):

OrderedDict(heapq.nlargest(3, mydict.iteritems(), key=lambda tup: sum(tup[1])))

OrderedDictdict具有相同的 API,但记住插入顺序。

2

对于这么小的切片,不值得使用 islice

sorted(mydict.iteritems(), key=lambda (k,v): sum(v), reverse=True)[:3]

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(894)
Python两个冒号:python比较两个矩阵
上一篇
Npsֵ:使用Pandas计算NPS
下一篇

相关推荐

  • python中def用法详解定义函数的基本方法

    示例示例def 关键字用于定义函数,是Python中定义函数的必备关键字,它的语法格式如下:def 函数名(参数列表):…

    2023-04-14 01:48:49
    0 76 90
  • python股票数据:利用Python技术分析股票市场行情

    Python股票数据是指通过Python编程语言从股票市场获取股票数据的过程。它可以帮助投资者快速、准确地获取当前股票的价格、成交量和其他相关信息,以便做出更好的投资决策。…

    2023-06-27 08:07:46
    0 49 57
  • python乘法表倒三角9×9

    Python乘法表倒三角是指以下形式的乘法表:1*1=1…

    2023-05-02 12:43:17
    0 10 62
  • python图片文字识别代码解锁新的信息发现之旅

    Python图片文字识别代码是使用Python语言来实现从图片中识别文字的功能,可以帮助我们快速提取图片中的文字信息。下面是一段Python图片文字识别的代码:…

    2023-04-29 01:22:43
    0 77 75
  • python画波形图探索数据的时间序列趋势

    Python可以使用库来绘制波形图。下面是一个简单的例子,使用正弦函数绘制一个波形图:…

    2023-05-10 08:55:12
    0 64 15
  • python的yield方法:利用Python的yield方法提升编程效率

    示例示例yield 是一个类似 return 的关键字,只是这个函数返回的是一个生成器。Python 中 yield 的作用就是把一个函数变成一个 ,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 ,调用 yield 的函数不再是调用函数,而是生成一个 。…

    2023-04-10 04:13:58
    0 90 14
  • python灰度化:如何使用Python实现图像灰度化

    Python灰度化是指将图像从彩色变为灰度图像的过程,使用灰度图像可以更容易地识别和处理图像中的特征。Python灰度化的代码如下:…

    2023-04-21 01:15:37
    0 80 25
  • python入参:从Python参数创建可靠的应用程序

    Python入参是指在Python函数中传递参数的方式。Python函数可以接受不定数量的参数,可以是位置参数、关键字参数、默认参数、可变参数和命名参数。下面是一个示例代码:…

    2024-02-28 07:41:01
    0 42 36

发表评论

登录 后才能评论

评论列表(4条)