我如何在main.py模块(大概)告诉Python使用哪个解释器? 我的意思是:如果我想要一个特定的脚本使用Python的第3版来解释整个程序,我该怎么做? 奖励:这将如何影响一个virtualenv? 我是否正确地认为,如果我为我的程序创build一个virtualenv,然后告诉它使用不同版本的Python,那么我可能会遇到一些冲突?
我有一个Python列表,其中包含键/值对: l=[ [1, 'A'], [1, 'B'], [2, 'C'] ] 我想将列表转换成一个字典,其中每个键的多个值将被聚合成一个元组: { 1:('A', 'B'), 2:('C',) } 迭代解决scheme是微不足道的: l=[ [1, 'A'], [1, 'B'], [2, 'C'] ] d={} for pair in l: if d.has_key(pair[0]): d[pair[0]]=d[pair[0]]+tuple(pair[1]) else: d[pair[0]]=tuple(pair[1]) print d {1: ('A', 'B'), 2: ('C',)} 这个任务有没有更优雅的Pythonic解决scheme?
几年前,我通过dynamic编程解决了一个问题: https://www.thanassis.space/fillupDVD.html 该解决scheme是用Python编码的。 作为扩展我的视野的一部分,我最近开始学习OCaml / F#。 有什么更好的方法来testing水域,而不是通过直接移植我在Python中编写的命令代码到F#,然后从那里开始,逐步向function性编程解决scheme迈进。 这第一个直接港口的结果是令人不安的: 在Python下: bash$ time python fitToSize.py …. real 0m1.482s user 0m1.413s sys 0m0.067s 在FSharp下: bash$ time mono ./fitToSize.exe …. real 0m2.235s user 0m2.427s sys 0m0.063s (如果你注意到上面的“单声道”:我也在Windows下testing,与Visual Studio – 相同的速度)。 我很困惑,至less可以说。 Python比F#更快地运行代码? 使用.NET运行库的已编译二进制文件比Python的解释代码运行SLOWER?!?! 我知道VM的启动成本(在这种情况下是单声道),以及JIT如何改进像Python这样的语言的东西,但仍然…我期望加速,而不是放缓! 我可能做错了吗? 我已经在这里上传了代码: https://www.thanassis.space/fsharp.slower.than.python.tar.gz 请注意,F#代码或多或less是对Python代码的直接逐行转换。 PS当然还有其他的收益,例如F#提供的静态types安全性,但是如果F#下的命令式algorithm的结果速度更糟……我很失望,至less可以说。 编辑 :直接访问,在评论中的要求: Python代码: https : //gist.github.com/950697 FSharp代码: https : //gist.github.com/950699
我是新的python,我正在计划学习django。 我有一些ruby( 不轨 )的经验,我熟悉RVM,但我不明白pythonbrew和virtualenv之间的区别。 我知道pythonbrew是RVM的 模拟器 ,但我认为virtualenv已经在做RVM的工作(反之亦然, pythonbrew已经在做RVM的工作了)。 有人可以请解释,也许提供一些具体的例子/用法来帮助我理解它。 非常感谢!
在我的代码中,我使用psycopg2.extras的DictCursor dict_cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) 但是,我加载游标时突然出现以下错误: AttributeError: 'module' object has no attribute 'extras' 也许有些东西在我的安装dorked,但我不知道从哪里开始寻找。 我用pip做了一些更新,但据我所知psycopg2没有依赖关系。
我正在使用matplotlib来生成(垂直)条形图。 问题是我的标签相当长。 有什么方法可以垂直显示它们,无论是在酒吧还是在酒吧上方或下方?
我的一个类的实例variables发生了一些事情。 我想让variables成为一个属性,每当它被访问的时候,我想打印出所有代码的堆栈跟踪,所以我可以看到它被混淆了。 当没有exception提出时,如何打印出堆栈跟踪? 我知道是否有例外,我可以做一些像traceback.format_tb(sys.exc_info()[2]) 。 另外可能有用的是只打印最后的3-4个级别,因为前几个可能不会那么有趣。
我有一本字典: {'key1':1, 'key2':2, 'key3':3} 我需要将该字典的子集传递给第三方代码。 它只需要一个包含密钥['key1', 'key2', 'key99'] ,如果它获得另一个密钥(例如'key3' ),它就会爆炸混乱。 有问题的代码是不受我控制的,所以我留在一个我必须清理我的字典的位置。 什么是最好的方法来限制字典到一组键? 鉴于上面的示例字典和允许的键,我想: {'key1':1, 'key2':2}
你好,我正在关注这个页面 。我正在Python上安装Python,以便我可以设置一个Django / Eclipse开发环境。 但是我不太清楚如何去执行这个步骤: 该脚本将解释它将做出什么样的改变,并在安装开始之前提示你。 安装Homebrew后,在PATH环境variables的顶部插入Homebrew目录。 您可以通过在〜/ .bashrc文件的底部添加以下行来完成此操作 export PATH = / usr / local / bin:$ PATH 我在哪里可以find我的Mac上的bashrc文件,我在哪里可以find自制目录? 我运行OS 10.8.5的macbook Pro。
我想在我的C ++应用程序中embeddedpython。 我正在使用Boost库 – 伟大的工具。 但是我有一个问题。 如果python函数抛出一个exception,我想赶上它,并在我的应用程序中打印错误,或得到一些像python脚本中的行号,导致错误的详细信息。 我该怎么做? 我找不到任何函数在Python API或Boost中获取详细的exception信息。 try { module=import("MyModule"); //this line will throw excetion if MyModule contains an error } catch ( error_already_set const & ) { //Here i can said that i have error, but i cant determine what caused an error std::cout << "error!" << std::endl; } PyErr_Print()只是打印错误文本到标准错误,并清除错误,所以它不能解决