我理解这一点没有问题:
a = [1,2,3,4]
b = [x for x in a]
Run Code Online (Sandbox Code Playgroud)
我以为就是这样,但后来我找到了这个片段:
a = [[1,2],[3,4],[5,6]]
b = [x for xs in a for x in xs]
Run Code Online (Sandbox Code Playgroud)
这使得b = [1,2,3,4,5,6]
.问题是我在理解语法方面遇到了麻烦[x for xs in a for x in xs]
,有人能解释一下它是如何工作的吗?
有没有办法在matplot lib饼图中更改百分比标签的默认位置?
这是一个示例饼图:
我用它创建的:
plt.pie(sizes, labels=labels, colors=colors, explode=explode, autopct='%1.0f%%')
Run Code Online (Sandbox Code Playgroud)
现在我不喜欢一些百分比标签如何侵入其他部分teritory(实际上这个例子中唯一的perpitrator是9m部分).理想情况下,我希望这些标签位于饼图之外,某些箭头指向该部分,或者可选地在该部分之外.
今天我定义了一个专门用于测试下一步的课程:
class B(object):
def p(self):
print("p")
Run Code Online (Sandbox Code Playgroud)
后来我这样做了:
>>> type(B.__dict__['p'])
<type 'function'>
>>> type(B.p)
<type 'instancemethod'>
Run Code Online (Sandbox Code Playgroud)
所以为什么?是不是B.p
和B.__dict__['p']
同一个对象?
当我尝试这个时,我的惊讶刚刚增加:
>>> B.__dict__['p']
<function p at 0x3d2bc80>
>>> type(B.__dict__['p'])
<type 'function'>
Run Code Online (Sandbox Code Playgroud)
好的,到目前为止一直很好,两种结果都是类型function
,但是当我尝试时:
>>> B.p
<unbound method B.p>
>>> type(B.p)
<type 'instancemethod'>
Run Code Online (Sandbox Code Playgroud)
什么为什么?unbound method
和instancemethod
?那些是一样的吗?为什么两个不同的名字
嗯,似乎python充满了惊喜!
这是我正在使用的python:
Python 2.7.4 (default, Sep 26 2013, 03:20:26)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Run Code Online (Sandbox Code Playgroud) 考虑这个时间序列,维基百科类别中的累计编辑数.
In [555]:
cum_edits.head()
Out[555]:
2001-08-31 23:37:28 1
2001-09-01 05:09:28 2
2001-09-18 10:01:17 3
2001-10-27 06:52:45 4
2001-10-27 07:01:45 5
Name: edits, dtype: int64
In [565]:
cum_edits.tail()
Out[565]:
2014-01-29 16:05:15 53254
2014-01-29 16:07:09 53255
2014-01-29 16:11:43 53256
2014-01-29 18:09:44 53257
2014-01-29 18:12:09 53258
Name: edits, dtype: int64
Run Code Online (Sandbox Code Playgroud)
我要像这样绘制图形:
In [567]:
cum_edits.plot()
Out[567]:
<matplotlib.axes.AxesSubplot at 0x1359c810>
Run Code Online (Sandbox Code Playgroud)
我希望在每次total_edits/n ; e.g. n=10
编辑后也绘制垂直线.我很容易计算出来.
In [568]:
dates
Out[568]:
[Timestamp('2006-06-04 04:46:22', tz=None),
Timestamp('2007-01-28 23:53:02', tz=None),
Timestamp('2007-09-16 10:52:02', tz=None),
Timestamp('2008-04-28 21:20:40', tz=None),
Timestamp('2009-04-12 22:07:13', tz=None), …
Run Code Online (Sandbox Code Playgroud) 我想了解Representable在Haskell 中代表什么.定义
Haskell类型的可表示的endofunctors与读者monad同构,因此可以免费继承大量的属性.
对我来说不够清楚.我想看看一个真实的例子,了解我如何使用tabulate
和index
方法.
所以,我的问题是:
如何使用 LaTeX 表达式在 Matplotlib 中标记轴$\langle B_{\mathrm{e}} \rangle$
?我需要用漂亮的“<”和“>”LaTeX括号标记我的轴。
我有自己格式的网格,我想将它导出到.vtk文件.我该怎么做呢?
原始网格采用以下格式:(伪代码)
class Mesh {
List<Float[3]> _coordinates
List<int[4]> _tetra //(elements, Faces, etc.)
}
Run Code Online (Sandbox Code Playgroud)
我希望这能澄清我的问题.我只想用Paraview加载它,所以我不在乎它是否是结构化的,聚合等.
我在理解 Python/PyQt 的类继承时遇到了麻烦。我有一个MainWindow
和一个 Popup QWidget
。我想用互动self.label1
的MainWindow
后QWidget
在弹出窗口中打开,但我不知道该怎么做。我只知道MainWindow
反过来,从里面的弹出窗口访问所有小部件,反之亦然。
下面是一个例子,self.label1
中MainWindow
后应该得到另一个文本MyPopup
在新窗口中打开:
import sys
from PyQt4.Qt import *
class MyPopup(QWidget):
def __init__(self):
QWidget.__init__(self)
# I want to change the lable1 of MainWindow
self.cw.label1.setText('hello')
class MainWindow(QMainWindow):
def __init__(self, *args):
QMainWindow.__init__(self, *args)
self.cw = QWidget(self)
self.setCentralWidget(self.cw)
self.btn1 = QPushButton("Click me", self.cw)
self.btn1.setGeometry(QRect(50, 50, 100, 30))
self.label1 = QLabel("No Commands running", self.cw)
self.connect(self.btn1, SIGNAL("clicked()"), self.doit)
self.w = None
def doit(self):
self.w = …
Run Code Online (Sandbox Code Playgroud) 我正在阅读这个问题而且在我看来我也需要它,但在Python中.所以我想知道是否有一种方法可以用with
Python中的语句来做到这一点.
基本上我想要的是Python中的某种IDisposable(C#)类比.我知道,肯定会有点不同,我认为如下:
class ForUseInWith(IDisposableLike):
#something here
pass
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
with ForUseInWith() as disposable:
#something here
pass
Run Code Online (Sandbox Code Playgroud)
目前我正在研究如何研究python参考和PEP 343,如果我设法做了一个很好的解决方案和一个聪明的例子,我将在这里发布答案.但顺便说一句,也许你可以帮助我.
为什么我在QPainter::begin: Painter already active
运行此代码时在控制台中收到此消息:
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
class MyRoundWidget(QWidget):
def __init__(self, master=None):
super(MyRoundWidget,self).__init__(master)
self.setWindowFlags(Qt.FramelessWindowHint)
self.setWindowTitle("QLinearGradient Vertical Gradient ")
self.setAttribute(Qt.WA_TranslucentBackground)
def paintEvent(self, ev):
painter = QPainter(self)
painter.begin(self)
gradient = QLinearGradient(QRectF(self.rect()).topLeft(),QRectF(self.rect()).bottomLeft())
gradient.setColorAt(0.0, Qt.black)
gradient.setColorAt(0.4, Qt.gray)
gradient.setColorAt(0.7, Qt.black)
painter.setBrush(gradient)
painter.drawRoundedRect(self.rect(), 10.0, 10.0)
painter.end()
def main():
app = QApplication(sys.argv)
widget = MyRoundWidget()
widget.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
我的代码有问题吗?
python ×8
matplotlib ×3
pyqt ×2
class ×1
functor ×1
haskell ×1
inheritance ×1
latex ×1
list ×1
mesh ×1
pandas ×1
python-2.7 ×1
vtk ×1