Questions tagged «python»

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

24
如何在Python中制作一个不变的对象?
尽管我从不需要它,但让我感到惊讶的是,在Python中创建不可变对象可能有些棘手。您不能仅仅重写__setattr__,因为这样您甚至都无法在中设置属性__init__。将元组子类化是一种有效的技巧: class Immutable(tuple): def __new__(cls, a, b): return tuple.__new__(cls, (a, b)) @property def a(self): return self[0] @property def b(self): return self[1] def __str__(self): return "<Immutable {0}, {1}>".format(self.a, self.b) def __setattr__(self, *ignored): raise NotImplementedError def __delattr__(self, *ignored): raise NotImplementedError 但是然后您可以通过和来访问a和b变量,这很烦人。self[0]self[1] 在纯Python中这可能吗?如果没有,我将如何使用C扩展名呢? (仅在Python 3中有效的答案是可以接受的)。 更新: 因此,将元组子类化是在纯Python 中完成此操作的方法[0],除了通过[1]等访问数据的附加可能性外,该方法行之有效。要解决此问题,所有遗漏的是如何在C中“正确”进行操作,这我怀疑这很简单,只是不执行任何geititemor setattribute等等。但是我没有为此做,而是为此提供了赏金,因为我很懒。:)

8
在python,del或delattr中哪个更好?
这可能很愚蠢,但已经困扰了我一段时间。 Python提供了两种从对象中删除属性的内置方法,即del命令字和delattr内置函数。我更喜欢delattr,因为我认为它更加明确: del foo.bar delattr(foo, "bar") 但是我想知道它们之间是否存在内在差异。
179 python  del 

4
在Python中构建完整路径文件名
我需要将文件路径名传递给模块。如何从目录名称,基本文件名和文件格式字符串构建文件路径? 呼叫时目录可能存在也可能不存在。 例如: dir_name='/home/me/dev/my_reports' base_filename='daily_report' format = 'pdf' 我需要创建一个字符串 '/home/me/dev/my_reports/daily_report.pdf' 手动连接片段似乎不是一个好方法。我试过了os.path.join: join(dir_name,base_filename,format) 但它给 /home/me/dev/my_reports/daily_report/pdf
179 python  join  filenames 

11
如何从字符串中删除所有空格
如何删除python字符串中的所有空格?例如,我希望将一个字符串strip my spaces转换成stripmyspaces,但是我似乎无法通过以下方式完成此操作strip(): >>> 'strip my spaces'.strip() 'strip my spaces'

23
在列表中找到最常见的元素
在Python列表中查找最常见元素的有效方法是什么? 我的列表项可能无法散列,因此不能使用字典。同样在绘制时,应返回索引最低的项目。例: >>> most_common(['duck', 'duck', 'goose']) 'duck' >>> most_common(['goose', 'duck', 'duck', 'goose']) 'goose'
179 python  list 

9
将NumPy数组追加到NumPy数组
我有一个numpy_array。有点像[ a b c ]。 然后,我想将其附加到另一个NumPy数组中(就像我们创建列表列表一样)。我们如何创建包含NumPy数组的NumPy数组的数组? 我尝试做以下没有运气的事情 >>> M = np.array([]) >>> M array([], dtype=float64) >>> M.append(a,axis=0) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'numpy.ndarray' object has no attribute 'append' >>> a array([1, 2, 3])
179 python  numpy 

4
如何在Jinja Python模板中输出逗号分隔列表?
如果我有一个userssay 列表["Sam", "Bob", "Joe"],我想做一些我可以在jinja模板文件中输出的内容: {% for user in userlist %} <a href="/profile/{{ user }}/">{{ user }}</a> {% if !loop.last %} , {% endif %} {% endfor %} 我想使输出模板为: Sam, Bob, Joe 我尝试了上面的代码来检查它是否在循环的最后一次迭代中,如果没有,则不要插入逗号,但是它不起作用。我该怎么做呢?
179 python  jinja2 

5
在熊猫中将列转换为字符串
我从SQL查询中获得以下DataFrame: (Pdb) pp total_rows ColumnID RespondentCount 0 -1 2 1 3030096843 1 2 3030096845 1 我想像这样旋转它: total_data = total_rows.pivot_table(cols=['ColumnID']) (Pdb) pp total_data ColumnID -1 3030096843 3030096845 RespondentCount 2 1 1 [1 rows x 3 columns] total_rows.pivot_table(cols=['ColumnID']).to_dict('records')[0] {3030096843: 1, 3030096845: 1, -1: 2} 但是我想确保303列被强制转换为字符串而不是整数,以便得到: {'3030096843': 1, '3030096845': 1, -1: 2}
179 python  numpy  pandas 

16
找不到满足需求张量流的版本
我安装了最新版本的Python (3.6.4 64-bit)和最新版本的PyCharm (2017.3.3 64-bit)。然后我在PyCharm中安装了一些模块(Numpy,Pandas等),但是当我尝试安装Tensorflow时却没有安装,并且出现了错误消息: 找不到满足TensorFlow要求的版本(来自版本:)找不到与TensorFlow匹配的发行版。 然后我尝试从命令提示符下安装TensorFlow,并得到了相同的错误消息。但是,我确实成功安装了tflearn。 我还安装了Python 2.7,但又收到了相同的错误消息。我搜索了该错误,并尝试了一些建议给其他人的方法,但是没有任何效果(包括安装Flask)。 我该如何安装Tensorflow?谢谢。

28
Python链表
在python中使用链表的最简单方法是什么?在方案中,链表仅由定义'(1 2 3 4 5)。实际上,Python的list [1, 2, 3, 4, 5]和tuple (1, 2, 3, 4, 5)不是链表,而链表具有一些不错的属性,例如恒定时间串联,并且能够引用其中的各个部分。使它们一成不变,并且它们真的很容易使用!





9
寻求澄清有关弱类型语言的明显矛盾
我想我了解强类型,但是每次我寻找弱类型的示例时,我最终都会找到简单地自动强制转换类型的编程语言示例。 例如,在这篇名为“ 打字:强vs.弱”,“静态vs.动态 ”的文章中,Python是强类型的,因为如果尝试执行以下操作,则会得到异常: 蟒蛇 1 + "1" Traceback (most recent call last): File "", line 1, in ? TypeError: unsupported operand type(s) for +: 'int' and 'str' 但是,在Java和C#中这种事情是可能的,因此我们不认为它们只是弱类型的。 爪哇 int a = 10; String b = "b"; String result = a + b; System.out.println(result); C# int a = 10; …
178 c#  java  python  perl  weakly-typed 

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.