Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

3
反引号对python解释器意味着什么:`num`
我正在玩列表理解,并且在另一个站点上遇到了这个小片段: return ''.join([`num` for num in xrange(loop_count)]) 我花了几分钟尝试复制功能(通过键入),然后才意识到`num`它被破坏了。 用这些字符括起来的语句有什么作用?从我所看到的相当于str(num)。但是当我计时的时候: return ''.join([str(num) for num in xrange(10000000)]) 它需要4.09秒,而: return ''.join([`num` for num in xrange(10000000)]) 需要2.43秒。 两者都给出相同的结果,但是要慢得多。这里发生了什么? 编辑:奇怪的是...repr()给出的结果比稍慢`num`。2.99秒和2.43秒。使用Python 2.6(尚未尝试3.0)。

12
生成列表的所有排列,而没有相邻的相等元素
当我们对列表进行排序时,例如 a = [1,2,3,3,2,2,1] sorted(a) => [1, 1, 2, 2, 2, 3, 3] 相等的元素在结果列表中始终相邻。 如何完成相反的任务-整理列表,使相等的元素永远不会(或尽可能少)相邻? 例如,对于上面的列表,一种可能的解决方案是 p = [1,3,2,3,2,1,2] 更正式地说,给定一个列表a,生成p它的排列,使对的数量最小化p[i]==p[i+1]。 由于列表很大,因此不能选择生成和过滤所有排列。 额外的问题:如何有效地生成所有此类排列? 这是我用来测试解决方案的代码:https : //gist.github.com/gebrkn/9f550094b3d24a35aebd UPD:在这里选择获胜者是一个艰难的选择,因为许多人都给出了很好的答案。@VincentvanderWeele,@大卫Eisenstat,@Coady,@ enrico.bacis和@srgerg提供完美产生最佳的置换函数。@tobias_k和David也回答了奖金问题(生成所有排列)。大卫还提供了正确性证明。 @VincentvanderWeele的代码似乎是最快的。


1
熊猫时间序列图设置x轴主要和次要刻度线和标签
我希望能够为从熊猫时间序列对象绘制的时间序列图设置主要和次要xticks及其标签。 熊猫0.9“新增功能”页面显示: “您可以使用to_pydatetime或为Timestamp类型注册一个转换器” 但是我不知道该怎么做,以便可以使用matplotlibax.xaxis.set_major_locator和ax.xaxis.set_major_formatter(和次要)命令。 如果我使用它们而没有转换熊猫时间,则x轴刻度和标签最终会出错。 通过使用“ xticks”参数,我可以将主要刻度线传递到pandas.plot,然后设置主要刻度线标签。我不知道如何使用这种方法做较小的滴答声。(我可以在pandas.plot设置的默认次要刻度上设置标签) 这是我的测试代码: import pandas print 'pandas.__version__ is ', pandas.__version__ print 'matplotlib.__version__ is ', matplotlib.__version__ dStart = datetime.datetime(2011,5,1) # 1 May dEnd = datetime.datetime(2011,7,1) # 1 July dateIndex = pandas.date_range(start=dStart, end=dEnd, freq='D') print "1 May to 1 July 2011", dateIndex testSeries = pandas.Series(data=np.random.randn(len(dateIndex)), index=dateIndex) ax …

14
如何有效计算运行标准偏差?
我有一组数字列表,例如: [0] (0.01, 0.01, 0.02, 0.04, 0.03) [1] (0.00, 0.02, 0.02, 0.03, 0.02) [2] (0.01, 0.02, 0.02, 0.03, 0.02) ... [n] (0.01, 0.00, 0.01, 0.05, 0.03) 我想做的是有效地计算所有数组元素在列表的每个索引处的均值和标准差。 为了表示平均值,我一直在遍历数组并求和给定列表索引处的值。最后,我将“平均值列表”中的每个值除以n(我正在处理总体,而不是总体中的样本)。 要进行标准偏差,现在我已经计算出平均值,因此我再次遍历。 我想避免两次遍历数组,一次是平均值,然后一次是SD(在得到平均值之后)。 是否有一种有效的方法来计算两个值,而只需要遍历数组一次?任何使用解释语言(例如Perl或Python)或伪代码的代码都可以。

14
Python sqlite3和并发
我有一个使用“线程”模块的Python程序。每秒一次,我的程序启动一个新线程,该线程从Web上获取一些数据,并将这些数据存储到我的硬盘中。我想使用sqlite3来存储这些结果,但是我无法使其正常工作。问题似乎与以下几行有关: conn = sqlite3.connect("mydatabase.db") 如果将这行代码放入每个线程中,则会收到OperationalError通知我数据库文件已锁定。我想这意味着另一个线程通过sqlite3连接打开了mydatabase.db并已将其锁定。 如果将这行代码放入主程序中,并将连接对象(conn)传递给每个线程,则会收到一个ProgrammingError,表示在线程中创建的SQLite对象只能在同一线程中使用。 以前,我将所有结果存储在CSV文件中,并且没有任何这些文件锁定问题。希望使用sqlite可以实现。有任何想法吗?
87 python  sqlite 

10
python-如何在python中更详细地规范二维numpy数组?
给定一个3乘3 numpy数组 a = numpy.arange(0,27,3).reshape(3,3) # array([[ 0, 3, 6], # [ 9, 12, 15], # [18, 21, 24]]) 为了规范二维数组的行,我想到了 row_sums = a.sum(axis=1) # array([ 9, 36, 63]) new_matrix = numpy.zeros((3,3)) for i, (row, row_sum) in enumerate(zip(a, row_sums)): new_matrix[i,:] = row / row_sum 必须有更好的方法,不是吗? 可能需要澄清:通过标准化我的意思是,每行条目的总和必须为1。但是我认为这对于大多数人来说都是显而易见的。


7
如果派生类中的基类属性被覆盖,该如何调用基类的属性?
我正在将我的某些类从对getter和setter的广泛使用改为对属性的更pythonic的使用。 但是现在我陷入了困境,因为以前的一些getter或setter方法会调用基类的相应方法,然后执行其他操作。但是,如何通过属性来实现呢?如何在父类中调用属性getter或setter? 当然,仅调用属性本身即可进行无限递归。 class Foo(object): @property def bar(self): return 5 @bar.setter def bar(self, a): print a class FooBar(Foo): @property def bar(self): # return the same value # as in the base class return self.bar # --> recursion! @bar.setter def bar(self, c): # perform the same action # as in the …


4
Python序列化-为什么要泡菜?
我了解到,Python腌制是一种以“尊重”对象编程的方式“存储” Python对象的方法-与以txt文件或DB编写的输出不同。 您是否在以下方面有更多详细信息或参考: 腌制后的物体在哪里存储? 为什么酸洗保留对象表示比存储在DB中更多? 如何从一个Python Shell会话中检索腌制的对象到另一个? 序列化有用时,您有哪些重要示例? 用pickle进行序列化是否意味着数据“压缩”? 换句话说,我正在寻找有关酸洗的文档-Python.doc解释了如何实现酸洗,但似乎没有深入探讨有关序列化的使用和必要性的细节。

26
使用OpenSSL时SSL后端错误
我试图使用pip在virtualenv中安装pycurl,但出现此错误 ImportError: pycurl: libcurl link-time ssl backend (openssl) is different from compile-time ssl backend (none/other) 我阅读了一些文档,说“要解决此问题,您需要告诉setup.py使用了什么SSL后端” (源),尽管由于使用pip安装了pycurl,所以我不确定该怎么做。 使用pip安装pycurl时如何指定SSL后端? 谢谢

5
Python:从ISO-8859-1 / latin1转换为UTF-8
我已经使用电子邮件模块将此字符串从Quoted-printable解码为ISO-8859-1。这给了我像“ \ xC4pple”这样的字符串,它对应于“Äpple”(瑞典语中的Apple)。但是,我无法将这些字符串转换为UTF-8。 >>> apple = "\xC4pple" >>> apple '\xc4pple' >>> apple.encode("UTF-8") Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128) 我该怎么办?

3
是否可以仅在localhost上运行python SimpleHTTPServer?
我有一个vpn连接,当我运行python -m SimpleHTTPServer时,它在0.0.0.0:8000上提供服务,这意味着可以通过本地主机和我的真实IP访问它。我不希望机器人扫描我,并且对仅通过本地主机访问服务器感兴趣。 可能吗? python -m SimpleHTTPServer 127.0.0.1:8000 # doesn't work. 也欢迎任何其他可以使用命令行立即执行的简单http服务器。

3
如何在Python中显示字符串的前几个字符?
嗨,我刚刚开始学习Python,但是现在有点卡住了。 我的hash.txt文件包含MD5,Sha1和Sha5中成千上万的恶意软件哈希,分别在每行中由定界符分隔。以下是我从.txt文件中提取的2行示例。 416d76b8811b0ddae2fdad8f4721ddbe | d4f656ee006e248f2f3a8a93a8aec5868788b927 | 12a5f648928f8e0b5376d2cc07de8e4cbf9f7ccbadb97d898373f85f0a75c47f 56a99a4205a4d6cab2dcae414a5670fd | 612aeeeaa8aa432a7b96202847169ecae56b07ee | d17de7ca4c8f24ff49314f0f342dbe9243b10e9f3558c6193e2fd6bccb1be6d2 我的意图是显示前32个字符(MD5哈希),以便输出看起来像这样: 416d76b8811b0ddae2fdad8f4721ddbe 56a99a4205a4d6cab2dcae414a5670fd 有任何想法吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.