由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 如何让python dictionary sorting 的速度变得很快?
相关主题
Re: amazon onsite interview question (转载)如何 randomize 一个sorted的文件 ?
Efficient algorithms for finding number, help please如何sort and merge n 个sorted linked list
算法之极弱问嵌入式系统用什么sorting算法比较好?
怎么同时找到最大的N个数函数式语言怎么实现常用数据结构?
underlying sort algorithm for SET in STL?Python小问题
我也来一个, quick sort 只要一行。Python矩阵一问
A STL sorting algorithm problem问一个python multiprocessing问题
问一个基本问题python 的 timeit 问题
相关话题的讨论汇总
话题: dictionary话题: max话题: python话题: sorting话题: 速度
进入Programming版参与讨论
1 (共1页)
p******r
发帖数: 122
1
如何让python dictionary sorting 的速度变得很快?
要sort 一些 python dictionary , 找出 value 最大的key, 一个 dictionary 的长度
大概有 300,000 。 然后发现速度奇慢。真的不是一点的慢。
代码用的这个:
max(stats.iteritems(), key=operator.itemgetter(1))[0]
问一下怎样能 speed up?
p***o
发帖数: 1252
2
sortedcontainers.SortedDict

【在 p******r 的大作中提到】
: 如何让python dictionary sorting 的速度变得很快?
: 要sort 一些 python dictionary , 找出 value 最大的key, 一个 dictionary 的长度
: 大概有 300,000 。 然后发现速度奇慢。真的不是一点的慢。
: 代码用的这个:
: max(stats.iteritems(), key=operator.itemgetter(1))[0]
: 问一下怎样能 speed up?

p******r
发帖数: 122
3
多谢。另外,你觉得300,000长 的 dictionary 找最大值很慢,正常吗?感觉计算机不
会这么慢。你觉得?

【在 p***o 的大作中提到】
: sortedcontainers.SortedDict
p***o
发帖数: 1252
4
还是先学一门数据结构的课再来讨论这个问题吧。

【在 p******r 的大作中提到】
: 多谢。另外,你觉得300,000长 的 dictionary 找最大值很慢,正常吗?感觉计算机不
: 会这么慢。你觉得?

p******r
发帖数: 122
5
多谢。推荐本数据结构的书吧!还有要解决这个问题看哪一部分呢?

【在 p***o 的大作中提到】
: 还是先学一门数据结构的课再来讨论这个问题吧。
p***o
发帖数: 1252
6
书随便,你网上搜哈希表和二叉树就行。

【在 p******r 的大作中提到】
: 多谢。推荐本数据结构的书吧!还有要解决这个问题看哪一部分呢?
w********m
发帖数: 1137
7
O(2N)
max_value = max(stats.values())
for k, v in stats.items():
if v == max_value:
print(k)
A*******e
发帖数: 2419
8
笨办法,一趟扫描就够了
不过30万的容器找最大,怎么可能非常慢。肯定有别的原因

【在 w********m 的大作中提到】
: O(2N)
: max_value = max(stats.values())
: for k, v in stats.items():
: if v == max_value:
: print(k)

s*****V
发帖数: 21731
9
sort 最快就是O(nlogn),只找最大值O(n)就可以。

【在 p******r 的大作中提到】
: 如何让python dictionary sorting 的速度变得很快?
: 要sort 一些 python dictionary , 找出 value 最大的key, 一个 dictionary 的长度
: 大概有 300,000 。 然后发现速度奇慢。真的不是一点的慢。
: 代码用的这个:
: max(stats.iteritems(), key=operator.itemgetter(1))[0]
: 问一下怎样能 speed up?

n****l
发帖数: 1739
10
不能比这个代码更简练了, 3百万都不会“慢”。 找找其他的问题。 另外这个max应
该没有sort。

【在 p******r 的大作中提到】
: 如何让python dictionary sorting 的速度变得很快?
: 要sort 一些 python dictionary , 找出 value 最大的key, 一个 dictionary 的长度
: 大概有 300,000 。 然后发现速度奇慢。真的不是一点的慢。
: 代码用的这个:
: max(stats.iteritems(), key=operator.itemgetter(1))[0]
: 问一下怎样能 speed up?

p******r
发帖数: 122
11
多谢。我也觉得是有别的原因。可能是数据什么的原因吧。我再去看看。

【在 n****l 的大作中提到】
: 不能比这个代码更简练了, 3百万都不会“慢”。 找找其他的问题。 另外这个max应
: 该没有sort。

p******r
发帖数: 122
12
刚才写了一个小程序,就测试一个dictionary, 300,000 的,超快:
import operator
a={}
for i in range(300000):
i=i/10
a[i]=i/100
print max(a.iteritems(), key=operator.itemgetter(1))[0]
我觉得我的那个程序,估计数据哪里有问题。

【在 n****l 的大作中提到】
: 不能比这个代码更简练了, 3百万都不会“慢”。 找找其他的问题。 另外这个max应
: 该没有sort。

1 (共1页)
进入Programming版参与讨论
相关主题
python 的 timeit 问题underlying sort algorithm for SET in STL?
什么语言简练如python运行速度如C++我也来一个, quick sort 只要一行。
How to sort a map in C++ STL based on Value, instead of KeyA STL sorting algorithm problem
这个同学很神问一个基本问题
Re: amazon onsite interview question (转载)如何 randomize 一个sorted的文件 ?
Efficient algorithms for finding number, help please如何sort and merge n 个sorted linked list
算法之极弱问嵌入式系统用什么sorting算法比较好?
怎么同时找到最大的N个数函数式语言怎么实现常用数据结构?
相关话题的讨论汇总
话题: dictionary话题: max话题: python话题: sorting话题: 速度