小编Laf*_*los的帖子

如何查找列表中所有出现的元素?

index()只会在列表中首次出现一个项目.是否有一个巧妙的技巧可以返回列表中的所有索引?

python list

326
推荐指数
9
解决办法
35万
查看次数

安装Graphviz 2.38后,"RuntimeError:确保Graphviz可执行文件在您的系统路径上"

我下载了Graphviz 2.38MSI版本并安装在文件夹下C:\Python34,然后我运行pip install Graphviz,一切顺利.在系统的路径中我添加了C:\Python34\bin.当我尝试运行测试脚本时filename=dot.render(filename='test'),我收到了一条消息

 RuntimeError: failed to execute ['dot', '-Tpdf', '-O', 'test'], make sure the Graphviz executables are on your systems' path
Run Code Online (Sandbox Code Playgroud)

我试图放入"C:\Python34\bin\dot.exe"系统的路径,但它不起作用,我甚至创建了一个"GRAPHVIZ_DOT"有价值的新环境变量"C:\Python34\bin\dot.exe",仍然无法正常工作.我试图卸载Graphviz并点击卸载graphviz,然后重新安装它并重新安装pip,但没有任何效果.

整个回溯消息是:

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\graphviz\files.py", line 220, in render
    proc = subprocess.Popen(cmd, startupinfo=STARTUPINFO)
  File "C:\Python34\lib\subprocess.py", line 859, in __init__
    restore_signals, start_new_session)
  File "C:\Python34\lib\subprocess.py", line 1112, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified …
Run Code Online (Sandbox Code Playgroud)

python installation graphviz

96
推荐指数
17
解决办法
12万
查看次数

支持不起作用

我正在尝试使用neovim与deopleteUtilSnips.两者都需要来自nvim的Python支持.

我按照说明:help nvim_python设置支持,但输出:echo has('python')或是:echo has('python3')两者0.

在nvim-startup上,我得到了消息UltiSnips requires py >= 2.7 or py3和deoplete It requires Neovim with Python 3 support ("+python3").

我的python(2.7.10)和python3(3.4.3)都安装了自制软件.neovim模块安装在pip和之上pip3,install neovim但是即使我let g:python_host_prog在nvimrc中设置路径,nvim 也找不到它.

我不知道我能做什么了,有人知道它有什么问题吗?

python neovim

17
推荐指数
3
解决办法
9714
查看次数

元类和__slots__?

所以,我正在阅读Python中的元类,以及如何使用type()三参数alter-ego来动态创建类.但是,第三个参数通常是dict初始化要创建的类的__dict__变量.

如果我要动态地创建基于使用一元类类__slots__,而不是__dict__,我怎么可能做到这一点?是type()仍然以某种方式使用覆盖一起__new__()

作为一个FYI,我知道正确的用途__slots__,在创建大量类时节省内存而不是滥用它来强制执行类型安全的形式.


设置__metaclass__和使用以下内容的普通(新式)类的示例__dict__:

class Meta(type):
    def __new__(cls, name, bases, dctn):
        # Do something unique ...
        return type.__new__(cls, name, bases, dctn)

class Foo(object):
    __metaclass__ = Meta

    def __init__(self):
        pass
Run Code Online (Sandbox Code Playgroud)


在上文中,type.__new__()被调用,第四个参数(它成为当实际使用的第三)创建了一个__dict__Foo.但是,如果我想修改Meta包括__slots__,那我也没有字典传递到type()__new__()函数(据我所知-我没有测试过任何这还没有,只是琢磨,并试图找到某种用途 - 情景).

编辑:快速但未经测试的猜测是将值放入__slots__变量并将其传递给变量type.__new__().然后添加一个__init__()to Meta来填充__slots__dict中的变量.虽然,我不确定该dict将如何达到__init__(),因为除非在...中定义了 …

python

15
推荐指数
2
解决办法
2839
查看次数

在数据框中添加缺少的日期索引

我已经加载了一个带有索引日期时间的CSV文件,这是一年中的最后一天.我想用空值填充缺少的日期作为行.

以下是我的CSV文件结构

Date    Australia   China
2011-01-31  4.75    5.81
2011-02-28  4.75    5.81
2011-03-31  4.75    6.06
2011-04-30  4.75    6.06
Run Code Online (Sandbox Code Playgroud)

我想用空列填充一个月内的所有日期.

我尝试了以下代码,但它无法正常工作.

import pandas as pd
df = pd.read_csv("data.csv", index_col="Date")
df.reindex(pd.date_range("2011-01-01", "2011-10-31"), fill_value="NaN")
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

10
推荐指数
1
解决办法
5045
查看次数

如何使用7zip压缩而不是zip,代码更改

我有一个代码用zip压缩特定文件夹中的每个文件,但我想用7zip压缩它,那该怎么办?

这是我到目前为止:

for date in dict_date:#zipping folders and get same name like the folder
    with ZipFile(os.path.join(src, '{0}.7z'.format(date)), 'w') as myzip:
        for subFolder in dict_date[date]:
            for fil in os.listdir(os.path.join(src, date, subFolder)):
                if not fil.endswith('.7z'):
                    myzip.write(os.path.join(src, date, subFolder, fil))
Run Code Online (Sandbox Code Playgroud)

python

9
推荐指数
1
解决办法
2万
查看次数

列表中组合的乘积之和

在给定列表中对所有组合的乘积求和的Pythonic方法是什么,例如:

[1, 2, 3, 4]
--> (1 * 2) + (1 * 3) + (1 * 4) + (2 * 3) + (2 * 4) + (3 * 4) = 35
Run Code Online (Sandbox Code Playgroud)

(对于这个例子,我已经采用了所有的两元素组合,但它可能有所不同.)

python functional-programming python-3.x

7
推荐指数
2
解决办法
522
查看次数

如何解开阵列?

我需要生成一个listscipy.optimize.minimizeboundry condition,就应该是这样的:

bonds = [(0., 0.99),(-30, 30),(-30, 30),(0., 30),(0., 30),(-0.99, 0.99),
        (0., 0.99),(-30, 30),(-30, 30),(0., 30),(0., 30),(-0.99, 0.99),
        (0., 0.99),(-30, 30),(-30, 30),(0., 30),(0., 30),(-0.99, 0.99),]
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何优雅的方式吗?

我试过了:

bonds = [[(0., 0.99),(-30, 30),(-30, 30),(0., 30),(0., 30),(-0.99, 0.99)] for i in range(3)]
Run Code Online (Sandbox Code Playgroud)

但这会产生

[[(0.0, 0.99), (-30, 30), (-30, 30), (0.0, 30), (0.0, 30), (-0.99, 0.99)],
 [(0.0, 0.99), (-30, 30), (-30, 30), (0.0, 30), (0.0, 30), (-0.99, 0.99)],
 [(0.0, 0.99), (-30, 30), (-30, 30), (0.0, 30), (0.0, …
Run Code Online (Sandbox Code Playgroud)

python arrays list

7
推荐指数
1
解决办法
872
查看次数

在pycharm中使用PIL打开图像

我尝试在 pycharm 中打开 tif 图像并将图像转换为 numpy 数组

from PIL import Image
import numpy as np
im =Image.open('shua.tif',mode='r')
x = np.array(im)
print x
Run Code Online (Sandbox Code Playgroud)

但它打印输出如下:

 <PIL.TiffImagePlugin.TiffImageFile image mode=RGB size=128x128 at 0x2F05A88>
Run Code Online (Sandbox Code Playgroud)

但如果我通过控制台运行代码,它就可以正常工作。

python python-imaging-library pycharm

7
推荐指数
1
解决办法
5536
查看次数

填充图中水平线上方和下方的区域

我想填补两条水平线上方和下方的区域.

这就是我想出的:

情节

 par(mfrow=c(1,2))
 x<-seq(1,24,1)
 y<-rnorm(24, 10, 2)

 for(i in 1:2) {
 plot(x,y,ylim=c(4,16))
 lines(x,y)
 abline(h=11)
 abline(h=9)}

 hyper<-y
 hyper[hyper<11]<-11
 polygon(x,hyper,col="gray")
Run Code Online (Sandbox Code Playgroud)

我的主要问题是与水平线的交叉不正确.

plot r

6
推荐指数
1
解决办法
1436
查看次数