Questions tagged «python»

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

2
为什么Python允许序列的切片索引超出范围?
因此,我只是遇到了我觉得很奇怪的Python功能,并希望对此进行一些澄清。 以下数组操作在一定程度上是有意义的: p = [1,2,3] p[3:] = [4] p = [1,2,3,4] 我想这实际上只是将这个值附加到末尾,对吗? 为什么我可以这样做? p[20:22] = [5,6] p = [1,2,3,4,5,6] 更是如此: p[20:100] = [7,8] p = [1,2,3,4,5,6,7,8] 这似乎是错误的逻辑。看来这应该引发错误! 有什么解释吗? -这只是Python所做的奇怪的事情吗? -有目的吗? -还是我在想这个错误的方式?

19
具有唯一值的排列
itertools.permutations会根据其位置而不是其值来生成其元素被视为唯一的元素。所以基本上我想避免重复: >>> list(itertools.permutations([1, 1, 1])) [(1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1)] 之后的过滤是不可能的,因为在我的情况下,排列的数量太大。 有人知道合适的算法吗? 非常感谢你! 编辑: 我基本上想要的是以下内容: x = itertools.product((0, 1, 'x'), repeat=X) x = sorted(x, key=functools.partial(count_elements, elem='x')) 这是不可能的,因为sorted创建列表并且itertools.product的输出太大。 抱歉,我应该已经描述了实际问题。


3
使用Pandas处理可变数量的列-Python
我有一个看起来像这样的数据集(最多5列-但可以更少) 1,2,3 1,2,3,4 1,2,3,4,5 1,2 1,2,3,4 .... 我正在尝试使用pandas read_table将其读取到5列数据框中。我想读这篇,无需额外按摩。 如果我尝试 import pandas as pd my_cols=['A','B','C','D','E'] my_df=pd.read_table(path,sep=',',header=None,names=my_cols) 我收到一个错误-“列名有5个字段,数据有3个字段”。 有什么方法可以让熊猫在读取数据时为缺少的列填写NaN?
76 python  pandas 

1
列表理解和生成器表达式的收益
以下行为对我来说似乎很违反直觉(Python 3.4): >>> [(yield i) for i in range(3)] <generator object <listcomp> at 0x0245C148> >>> list([(yield i) for i in range(3)]) [0, 1, 2] >>> list((yield i) for i in range(3)) [0, None, 1, None, 2, None] 最后一行的中间值实际上并不总是None,它们是send生成器中使用的值,相当于(我想)以下生成器: def f(): for i in range(3): yield (yield i) 这三行代码完全起作用使我感到很有趣。该参考指出,yield仅在一个函数定义允许的(虽然我可能读错和/或它可能只是已经从旧版本复制)。前两行在SyntaxErrorPython 2.7中产生a ,但第三行却没有。 …

6
如何在运行时动态更改实例的基类?
本文的摘要显示了__bases__通过将类添加到继承它的类的现有类集合中来动态更改某些Python代码的继承层次结构的用法。好的,这很难看懂,代码可能更清晰: class Friendly: def hello(self): print 'Hello' class Person: pass p = Person() Person.__bases__ = (Friendly,) p.hello() # prints "Hello" 也就是说,Person它不是从Friendly源级别继承的,而是通过修改__bases__Person类的属性在运行时动态添加此继承关系。但是,如果更改Friendly并Person成为新的样式类(通过从object继承),则会出现以下错误: TypeError: __bases__ assignment: 'Friendly' deallocator differs from 'object' 对此进行一些谷歌搜索似乎表明新样式类和旧样式类在运行时更改继承层次结构方面存在一些不兼容性。具体来说:“新型类对象不支持对其基属性的赋值”。 我的问题是,是否可以使用Python 2.7+中的新型类,使上面的Friendly / Person示例工作,可能是通过使用__mro__属性? 免责声明:我完全意识到这是晦涩的代码。我完全意识到,在实际的生产代码中,这样的技巧往往难以理解,这纯粹是一个思想实验,并且让人们从中学习有关Python如何处理与多重继承相关的问题的知识。

11
查找包含给定文件的文件系统的大小和可用空间
我在Linux上使用Python 2.6。最快的方法是什么: 确定哪个分区包含给定的目录或文件? 例如,假设/dev/sda2已安装在/home和/dev/mapper/foo上/home/foo。"/home/foo/bar/baz"我想从琴弦中取出那副("/dev/mapper/foo", "home/foo")。 然后,获取给定分区的使用情况统计信息?例如,给定/dev/mapper/foo我想要获取分区的大小和可用的可用空间(以字节为单位或大约以兆字节为单位)。

6
matplotlib中是否有线型列表?
我正在编写一个脚本,将进行一些绘图。我希望它绘制几个数据系列,每个数据系列都有其独特的线条样式(不是颜色)。我可以轻松地遍历列表,但是python中已经有这样的列表了吗?

8
如何告诉Python脚本使用特定版本
我如何在main.py模块(大概)中告诉Python使用哪个解释器?我的意思是:如果我想让特定脚本使用Python版本3解释整个程序,该怎么办? 奖励:这将如何影响virtualenv?我是否在想,如果我为程序创建一个virtualenv然后告诉它使用其他版本的Python,那么我可能会遇到一些冲突吗?

2
Python多处理安全地写入文件
我正在尝试解决一个涉及许多子问题的大数值问题,并且我正在使用Python的多处理模块(特别是Pool.map)将不同的独立子问题分解为不同的核心。每个子问题都涉及计算大量子问题,并且我试图通过将结果存储到文件中(如果尚未通过任何过程对其进行计算)来有效地记住这些结果,否则请跳过计算并仅从文件中读取结果。 我的文件存在并发问题:有时,不同的过程会检查以查看是否已经计算了子子问题(通过查找将结果存储在文件中),没有找到子子问题,运行计算,然后尝试同时将结果写入同一文件。如何避免这样写冲突?

5
相当于类的Python functools.wraps
当使用一个类中定义一个装饰,我怎么自动转移__name__,__module__和__doc__?通常,我会使用functools中的@wraps装饰器。这是我为一个类所做的事情(这不完全是我的代码): class memoized: """Decorator that caches a function's return value each time it is called. If called later with the same arguments, the cached value is returned, and not re-evaluated. """ def __init__(self, func): super().__init__() self.func = func self.cache = {} def __call__(self, *args): try: return self.cache[args] except KeyError: value …
76 python  decorator 

3
matplotlib:我可以创建AxesSubplot对象,然后将它们添加到Figure实例中吗?
综观matplotlib文档,似乎标准的方式来添加AxesSubplot一个Figure是使用Figure.add_subplot: from matplotlib import pyplot fig = pyplot.figure() ax = fig.add_subplot(1,1,1) ax.hist( some params .... ) 我希望能够AxesSubPlot独立于图形创建类似对象,因此可以在不同图形中使用它们。就像是 fig = pyplot.figure() histoA = some_axes_subplot_maker.hist( some params ..... ) histoA = some_axes_subplot_maker.hist( some other params ..... ) # make one figure with both plots fig.add_subaxes(histo1, 211) fig.add_subaxes(histo1, 212) fig2 = pyplot.figure() # …

3
Flask路径规则中的尾部斜杠触发器404
我想将任何路径重定向/users到静态应用程序。以下视图应捕获这些路径并提供适当的文件(此示例仅显示路径)。这适用于/users,/users/604511和/users/604511/action。为什么路径/users/会导致404错误? @bp.route('/users') @bp.route('/users/<path:path>') def serve_client_app(path=None): return path
76 python  flask 

4
MatPlotLib:同一散点图上的多个数据集
我想在同一散点图上绘制多个数据集: cases = scatter(x[:4], y[:4], s=10, c='b', marker="s") controls = scatter(x[4:], y[4:], s=10, c='r', marker="o") show() 上面仅显示了最新的 scatter() 我也尝试过: plt = subplot(111) plt.scatter(x[:4], y[:4], s=10, c='b', marker="s") plt.scatter(x[4:], y[4:], s=10, c='r', marker="o") show()

13
“ For”循环第一次迭代
我想询问在第一次循环迭代中是否存在一种优雅的pythonic方式来执行某些功能。我能想到的唯一可能性是: first = True for member in something.get(): if first: root.copy(member) first = False else: somewhereElse.copy(member) foo(member)

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.