Tag: python

我可以在Python中做一个有序的默认字典吗?

我想结合OrderedDict()和defaultdict()从一个对象,这将是一个有序的默认字典collections 。 这可能吗?

非常大的使用Python和NumPy的matrix

NumPy是一个非常有用的库,使用它我发现它能够很容易地处理相当大(10000 x 10000)的matrix,但是开始与任何更大的(争取创build一个50000 x 50000matrix失败)。 显然,这是因为内存需求量大。 有没有办法以某种方式在NumPy中生成巨大的matrix(比如100万)?

如何确定我的python shell是否在OS X上以32位或64位模式执行?

我需要一种方法来从shell中告诉shell是什么模式。 我试过看平台模块,但它似乎只是告诉你有关“位架构和用于可执行文件的链接格式”:二进制被编译为64位,虽然(我在OS X 10.6上运行)所以它似乎总是报告64位,即使我使用这里描述的方法强制32位模式)。

如何获得Python中当前执行文件的path?

这可能看起来像一个新手问题,但事实并非如此。 一些常用的方法在所有情况下都不起作用: sys.argv中[0] 这意味着使用path = os.path.abspath(os.path.dirname(sys.argv[0])) ,但是如果您从另一个目录中的另一个Python脚本运行,则这不起作用,并且这可能会在现实生活中发生。 __文件__ 这意味着使用path = os.path.abspath(os.path.dirname(__file__)) ,但是我发现这不起作用: py2exe没有__file__属性,但有一个解决方法 当你使用execute()从IDLE运行时,没有__file__属性 OS X 10.6我得到的NameError: global name '__file__' is not defined 有不完整答案的相关问题: Python – 查找正在运行的文件的path 当前文件的path取决于我如何执行程序 如何知道在Python中运行脚本的path? 将目录切换到Python脚本的目录 我在寻找一个通用的解决scheme ,一个可以在所有上面的用例中工作的解决scheme 。 更新 这是一个testing用例的结果: python a.py的输出(在Windows上) a.py: __file__= a.py a.py: os.getcwd()= C:\zzz b.py: sys.argv[0]= a.py b.py: __file__= a.py b.py: os.getcwd()= C:\zzz a.py #! /usr/bin/env […]

我应该把#! (shebang)在Python脚本中,它应该采取什么forms?

我应该把我的Python脚本中的shebang? 以什么forms? #!/usr/bin/env python 要么 #!/usr/local/bin/python 这些是否同样便携? 哪种forms最常用? 注意: 龙卷风项目使用shebang。 另一方面, Django项目没有。

在Python中遍历一系列date

我有下面的代码来做到这一点,但我怎么能做得更好? 现在我认为它比嵌套循环要好,但是当你在列表理解中有一个生成器的时候,它开始得到一个Perl。 day_count = (end_date – start_date).days + 1 for single_date in [d for d in (start_date + timedelta(n) for n in range(day_count)) if d <= end_date]: print strftime("%Y-%m-%d", single_date.timetuple()) 笔记 我实际上并没有使用它来打印。 这只是为了演示的目的。 start_date和end_datevariables是datetime.date对象,因为我不需要时间戳。 (他们将被用来生成一个报告)。 示例输出 2009-05-30开始date和2009-06-09结束date: 2009-05-30 2009-05-31 2009-06-01 2009-06-02 2009-06-03 2009-06-04 2009-06-05 2009-06-06 2009-06-07 2009-06-08 2009-06-09

如何从JSON获取string对象而不是Unicode?

我使用Python 2从ASCII编码的文本文件中parsingJSON。 当用json或simplejson加载这些文件时,我所有的string值都被转换为Unicode对象而不是string对象。 问题是,我必须使用一些只接受string对象的库的数据。 我不能更改库或更新它们。 是否有可能获得string对象而不是Unicode的? 例 >>> import json >>> original_list = ['a', 'b'] >>> json_list = json.dumps(original_list) >>> json_list '["a", "b"]' >>> new_list = json.loads(json_list) >>> new_list [u'a', u'b'] # I want these to be of type `str`, not `unicode` 更新 很久以前,当我被Python 2困住时,这个问题被问到了 。 今天一个简单而干净的解决scheme就是使用Python的最新版本 – 即Python 3和forward。

numpy.array形状(R,1)和(R,)之间的区别

在numpy ,一些操作返回形状(R, 1)但有一些返回(R,) 。 这将使matrix乘法更加乏味,因为需要显式reshape 。 例如,给定一个matrixM ,如果我们想要做numpy.dot(M[:,0], numpy.ones((1, R)))其中R是行数(当然,同样的问题也是按列发生)。 由于M[:,0]在形状(R,)但numpy.ones((1, R))在形状(1, R)我们将得到matrices are not aligned错误。 所以我的问题是: 形状(R, 1)和(R,)什么区别。 我从字面上知道这是列表中的数字和列表,其中所有列表只包含一个数字。 只是想知道为什么不devisenumpy所以它有利于形状(R, 1)而不是(R,) ,以便于matrix乘法。 上面的例子有更好的方法吗? 没有像这样明确重塑: numpy.dot(M[:,0].reshape(R, 1), numpy.ones((1, R)))

Pythonic方式创build一个长的多行string

我有一个很长的查询。 我想在Python中分成几行。 在JavaScript中使用的方法是使用几个句子,并将它们与一个+运算符(我知道,也许这不是最有效的方式),但我并不在乎这个阶段的性能,只是代码的可读性)。 例: var long_string = 'some text not important. just garbage to' + 'illustrate my example'; 我尝试了在Python中做类似的事情,但它没有工作,所以我用\来拆分长string。 但是,我不确定这是否是唯一的/最好的/ pythonicest的方式。 看起来很尴尬。 实际代码: query = 'SELECT action.descr as "action", '\ 'role.id as role_id,'\ 'role.descr as role'\ 'FROM '\ 'public.role_action_def,'\ 'public.role,'\ 'public.record_def, '\ 'public.action'\ 'WHERE role.id = role_action_def.role_id AND'\ 'record_def.id = role_action_def.def_id AND'\ 'action.id = role_action_def.action_id […]

如何在Django中pipe理本地和生产设置?

处理本地开发和生产服务器设置的build议方法是什么? 它们中的一些(如常量等)可以在两者中进行更改/访问,但其中一些(如静态文件的path)需要保持不同,因此每次部署新代码时都不应该被覆盖。 目前,我将所有常量添加到settings.py 。 但每当我在本地更改一些常量时,我​​必须将其复制到生产服务器并编辑生产特定更改的文件… 🙁 编辑:看起来像这个问题没有标准答案,我接受了最stream行的方法。