我经常在matplotlib图上绘制一个点:
x = 10
y = 100
plot(x, y, "k*", label="Global Optimum")
legend()
Run Code Online (Sandbox Code Playgroud)
但是,这会导致图例在图例中放置两次星形,如下所示:
* * Global Optimum
Run Code Online (Sandbox Code Playgroud)
当我真的希望它看起来像:
* Global Optimum
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
我不能为我的生活得到python的相对导入工作.我创建了一个它不起作用的简单示例:
目录结构是:
/__init__.py
/start.py
/parent.py
/sub/__init__.py
/sub/relative.py
Run Code Online (Sandbox Code Playgroud)
/start.py
仅包含: import sub.relative
/sub/relative.py
只包含 from .. import parent
所有其他文件都是空白的.
在命令行上执行以下操作时:
$ cd /
$ python start.py
Run Code Online (Sandbox Code Playgroud)
我明白了:
Traceback (most recent call last):
File "start.py", line 1, in <module>
import sub.relative
File "/home/cvondrick/sandbox/sub/relative.py", line 1, in <module>
from .. import parent
ValueError: Attempted relative import beyond toplevel package
Run Code Online (Sandbox Code Playgroud)
我使用的是Python 2.6.为什么会这样?如何使这个沙盒示例工作?
希望这很简单:我有一个相对较长的列表,其中每个列表项包含非常少的文本.例如:
* a * b * c * d * e * f
我想格式化它:
* a * d * b * e * c * f
我宁愿不创建一个包含2个列表的表,因为我希望能够轻松更改列表而不必担心更新所有列.
乳胶中最好的方法是什么?
我必须在SQLAlchemy的级联选项中遗漏一些简单的东西,因为我无法通过简单的级联删除来正确操作 - 如果父元素被删除,子元素会持久存在,使用null
外键.
我在这里提出了一个简洁的测试用例:
from sqlalchemy import Column, Integer, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Parent(Base):
__tablename__ = "parent"
id = Column(Integer, primary_key = True)
class Child(Base):
__tablename__ = "child"
id = Column(Integer, primary_key = True)
parentid = Column(Integer, ForeignKey(Parent.id))
parent = relationship(Parent, cascade = "all,delete", backref = "children")
engine = create_engine("sqlite:///:memory:")
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
parent = Parent()
parent.children.append(Child()) …
Run Code Online (Sandbox Code Playgroud) 我有时会编写Python程序,这些程序在执行之前很难确定它将使用多少内存.因此,我有时会调用一个试图分配大量RAM的Python程序,导致内核大量交换并降低其他正在运行的进程的性能.
因此,我希望限制Python堆可以增加多少内存.达到限制时,程序可能会崩溃.最好的方法是什么?
如果重要,很多代码都是用Cython编写的,所以它应该考虑那里分配的内存.我没有与纯Python解决方案结合(它不需要是可移植的),所以在Linux上运行的任何东西都可以.
使用声明式在SQLAlchemy中创建一对一关系的最佳方法是什么?
我有两个表,foo
而且bar
,我想foo.bar_id
链接到bar
.问题在于这是一种单向一对一的关系.bar
一定不能知道foo
.对于每一个foo,都会有一个且只有一个bar
.
理想情况下,在选择foo后,我可以这样做:
myfoo.bar.whatever = 5
Run Code Online (Sandbox Code Playgroud)
使用声明式实现此目的的最佳方法是什么?
我来自一个背景,我通常每个类创建一个文件.我也在目录下组织公共类.这种做法对我来说很直观,并且已被证明在C++,PHP,JavaSript等中有效.
我无法将这个比喻带入Python:文件不仅仅是文件,而是正式的模块.在一个模块中只有一个类似乎是不对的 - 大多数类本身都是无用的.如果我有一个automobile.py
和一个Automobile
类,总是引用它似乎很愚蠢automobile.Automobile
.
但是,与此同时,将大量代码放入一个文件并将其称为一天似乎并不正确.显然,一个非常复杂的应用程序应该有超过5个文件.
什么是正确的 - 或pythonic ---方式?(或者,如果没有正确的方法,您首选的方式是什么?为什么?)我应该在Python模块中投入多少代码?
我有一个带有一堆逐字文字的乳胶文件.我想缩进这些的每个实例.
例如:
This is regular text.
\begin{verbatim}
This is verbatim text.
\end{verbatim}
Run Code Online (Sandbox Code Playgroud)
我希望"这是逐字文本"缩进一厘米或两厘米.我该怎么做呢?
当我:e
在vim中使用时,它将在.class
文件之前完成文件的选项卡.java
.由于我从不想编辑.class
文件,如何阻止vim .class
在tab-completion中显示文件?
对于我的生活,我无法弄清楚原因:在LaTeX文档中写作时,我喜欢将线宽保持在最多80个字符.因此,我将执行vim命令gqap
,vim将自动重新打开我正在编写的段落.
例如,它会导致一条长行变成许多较短的行:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque pharetra nunc eget arcu dapibus pretium. Nulla vel risus quam, ut sollicitudin sem. Vivamus vitae diam in risus pharetra gravida. Donec rutrum mattis nulla, in consectetur lorem luctus varius. Donec augue purus, iaculis eget fringilla nec, vehicula ut sapien. Quisque sit amet dolor mauris. Sed ac est eu ligula aliquam tincidunt. Proin condimentum rutrum lacinia.
Run Code Online (Sandbox Code Playgroud)
变为:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque pharetra
nunc …
Run Code Online (Sandbox Code Playgroud) python ×6
latex ×3
sqlalchemy ×2
vim ×2
database ×1
linux ×1
matplotlib ×1
memory ×1
module ×1
package ×1