Tag: python

Python列表理解 – 希望避免重复评估

我有一个列表理解近似于: [f(x) for x in l if f(x)] 其中l是一个列表,f(x)是一个返回列表的昂贵函数。 我想避免f(x)每f(x)的非空发生两次评估。 有什么方法可以将其输出保存在列表理解中? 我可以删除最后的条件,生成整个列表,然后修剪它,但这似乎是浪费。 编辑 : 已经提出了两种基本方法: 内在的发电机理解: [y for y in (f(x) for x in l) if y] 或记忆。 我认为内在的生成器理解对于所述的问题是优雅的。 其实我简化了这个问题来说清楚,我真的很想: [g(x, f(x)) for x in l if f(x)] 对于这种更复杂的情况,我认为备忘录产生了一个更清洁的最终结果。

使用大括号初始化设置

我正在学习python,我有一个关于初始化集合的新手问题。 通过testing,我发现一个集合可以像这样初始化: my_set = {'foo', 'bar', 'baz'} 这样做有什么缺点,而不是以下的标准方式: my_set = set(['foo', 'bar', 'baz']) 还是只是一个风格的问题?

Python pandas从一列string的数据select中过滤掉nan

没有使用groupby我怎么会过滤掉没有NaN数据? 假设我有一个matrix,客户将填写“不适用”,“不适用”或其任何变体以及其他内容,并保留为空: import pandas as pd import numpy as np df = pd.DataFrame({'movie': ['thg', 'thg', 'mol', 'mol', 'lob', 'lob'], 'rating': [3., 4., 5., np.nan, np.nan, np.nan], 'name': ['John', np.nan, 'N/A', 'Graham', np.nan, np.nan]}) nbs = df['name'].str.extract('^(N/A|NA|na|n/a)') nms=df[(df['name'] != nbs) ] 输出: >>> nms movie name rating 0 thg John 3 1 thg NaN 4 3 […]

在shell脚本中检测python版本

我想检测是否Python系统安装在Linux系统上,如果是,安装了哪个python版本。 我该怎么做? 有没有比parsing"python –version"的输出更优美的东西?

如何在django中编写自定义装饰器?

问题 – @is_premium_user def sample_view: ……. …… 我希望某些视图只能访问网站的高级用户。 我怎样才能在我的项目中的各种应用程序中使用这个装饰器?

如何使用urllib2制作HTTP DELETE方法?

urllib2是否支持DELETE或PUT方法? 如果是,请提供任何示例。 我需要使用活塞API。

在Django中dynamic生成ZIP压缩文件

如何在Django中为用户提供dynamic生成的ZIP压缩文件? 我正在创build一个网站,用户可以select任何可用书籍的组合,并将其下载为ZIP存档。 我担心为每个请求生成这样的档案会减慢我的服务器爬行。 我也听说Django目前没有一个好的解决scheme来提供dynamic生成的文件。

Matplotlib没有显示在Mac OSX中

我正在运行Mac OSX 10.5.8。 我使用macports安装matplotlib。 我从这个matplotlib库中得到了一些例子,没有修改: http://matplotlib.sourceforge.net/examples/api/unicode_minus.html 我运行它,得到没有错误,但图片不显示。 在Linux Ubuntu中,我明白了。 你知道这里可能是错的吗? 谢谢

在python脚本中读取tar文件的内容而不用解开它

我有一个tar文件,里面有一些文件。 我需要编写一个python脚本,它将读取文件的内容,并提供总字符数,包括字母,空格,换行符,所有内容的总数,而不需要解压tar文件。

理解Python中的lambda并使用它传递多个参数

在阅读了所有关于lambda的信息之后,我仍然不明白如何使其达到我想要的水平。 每个人都用这个例子 lambda x, y : x + y 为什么你需要在':'之前同时声明'x'和'y'? 另外你如何让它返回多个参数? 例如: self.buttonAdd_1 = Button(self, text='+', command=lambda : self.calculate(self.buttonOut_1.grid_info(), 1)) 这工作得很好。 但是下面的代码不会: self.entry_1.bind("<Return>", lambda : self.calculate(self.buttonOut_1.grid_info(), 1)) 它会产生错误: TypeError:()不带参数(给出1)