Tag: python

在字典中获得最大价值的关键?

我有一个dictionary :键是string,值是整数。 例: stats = {'a':1000, 'b':3000, 'c': 100} 我想把'b'作为答案,因为它是价值更高的关键。 我做了以下操作,使用具有反转键值元组的中间列表: inverse = [(value, key) for key, value in stats.items()] print max(inverse)[1] 这是一个更好的(或更优雅)的方法?

检查给定的键是否已经存在于字典中

我想在更新密钥的值之前testing一个字典中是否存在一个密钥。 我写了下面的代码: if 'key1' in dict.keys(): print "blah" else: print "boo" 我认为这不是完成这个任务的最好方法。 有没有更好的方法来testing字典中的一个键?

为什么append在这段代码中没有返回?

list = [1, 2, 3] print list.append(4) ## NO, does not work, append() returns None ## Correct pattern: list.append(4) print list ## [1, 2, 3, 4] 我正在学习Python,我不确定这个问题是否是特定于该语言的,以及如何在Python中实现append。

python按值列表不是通过引用

我们来举个例子 a=['help', 'copyright', 'credits', 'license'] b=a b.append('XYZ') b ['help', 'copyright', 'credits', 'license', 'XYZ'] a ['help', 'copyright', 'credits', 'license', 'XYZ'] 我想在列表'b'中追加值,但列表'a'的值也发生了变化。 我想我不知道为什么它像这样(python通过引用列表)。 我的问题是“如何通过价值来传递它,使得追加'b'不会改变'a'中的值?

如何在Python中实现一个有效的素数数字生成器?

这不是功课,我只是好奇而已。 无限是这里的关键词。 我希望用它作为primes()中的p。 我相信这是Haskell的一个内置函数。 所以,答案不能像“只是做一个筛子”那样幼稚。 首先,你不知道会消耗多less连续的素数。 那么,假设你可以一次制造100个。 你会使用相同的筛法和质数公式的频率吗? 我更喜欢非并发的方法。 感谢您阅读(和写作))!

根据另一个列表中的值sorting列表?

我有这样的string列表: X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"] Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1] 使用Y中的值sortingX以获得以下输出的最短方式是什么? ["a", "d", "h", "b", "c", "e", "i", "f", "g"] 具有相同“键”的元素的顺序无关紧要。 我可以诉诸构造的使用,但我很好奇,如果有一个更短的路。 有什么build议么?

使用numpy来构build两个数组的所有组合的数组

我试图运行一个6参数函数的参数空间来研究它的数值行为之前,试图做任何复杂的事情,所以我正在寻找一种有效的方式来做到这一点。 我的函数采用浮点值给定一个6 dim numpy数组作为input。 我最初尝试做的是这样的: 首先,我创build了一个函数,该函数接受2个数组,并使用两个数组中的所有值的组合生成一个数组 from numpy import * def comb(a,b): c = [] for i in a: for j in b: c.append(r_[i,j]) return c 然后我使用reduce()将其应用于同一个数组的m个副本: def combs(a,m): return reduce(comb,[a]*m) 然后我评估我的function是这样的: values = combs(np.arange(0,1,0.1),6) for val in values: print F(val) 这工作,但它太慢了。 我知道参数的空间是巨大的,但这不应该太慢。 在这个例子中,我只采样了10 6 (百万)个点,创build数组values 15秒以上的时间。 你知道用numpy做这个更有效的方法吗? 如果必要,我可以修改函数F取其参数的方式。

random.choice的加权版本

我需要编写random.choice的加权版本(列表中的每个元素有不同的select概率)。 这就是我想到的: def weightedChoice(choices): """Like random.choice, but each element can have a different chance of being selected. choices can be any iterable containing iterables with two items each. Technically, they can have more than two items, the rest will just be ignored. The first item is the thing being chosen, the second item is its […]

当DISPLAY未定义时,用matplotlib生成一个PNG

我正在尝试使用Python的networkx。 当我运行这个程序时,得到这个错误。 有什么遗漏吗? #!/usr/bin/env python import networkx as nx import matplotlib import matplotlib.pyplot import matplotlib.pyplot as plt G=nx.Graph() G.add_node(1) G.add_nodes_from([2,3,4,5,6,7,8,9,10]) #nx.draw_graphviz(G) #nx_write_dot(G, 'node.png') nx.draw(G) plt.savefig("/var/www/node.png") Traceback (most recent call last): File "graph.py", line 13, in <module> nx.draw(G) File "/usr/lib/pymodules/python2.5/networkx/drawing/nx_pylab.py", line 124, in draw cf=pylab.gcf() File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 276, in gcf return figure() File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line […]

计算string中字符的出现次数

计算string中字符出现次数的最简单方法是什么? 例如,计算'Mary had a little lamb'出现'a'的次数