小编Mos*_*oye的帖子

python用引号和空格拆分文本

我有以下文字

text = 'This is "a simple" test'
Run Code Online (Sandbox Code Playgroud)

我需要以两种方式拆分它,首先是引号然后是空格,导致:

res = ['This', 'is', '"a simple"', 'test']
Run Code Online (Sandbox Code Playgroud)

但是str.split()我只能使用引号或空格作为分隔符.是否有多个分隔符的内置函数?

python split delimiter

5
推荐指数
1
解决办法
1880
查看次数

如何在Python Dispatch表中传递参数

我试图通过以下方式构建调度:

def run_nn(type=None):
    print type, 'nn'
    return

def run_svm(type=None):
    print type, 'svm'
    return


action = {'nn' : run_nn( type=None),
          'svm' : run_svm(type=None),}
Run Code Online (Sandbox Code Playgroud)

我希望函数只有在调用时才会执行:

 action.get('nn',type='foo')
Run Code Online (Sandbox Code Playgroud)

期望它打印:

foo nn
Run Code Online (Sandbox Code Playgroud)

但它打破了给予:

TypeError: get() takes no keyword arguments
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法呢?

此外,两个功能run_nn(),run_svm()甚至没有被调用执行.我不希望这样.我怎么能避免呢?

python dispatch-table

4
推荐指数
1
解决办法
2576
查看次数

有没有办法在python中"取消引发"异常?

我无法控制不必要地引发某个异常的python库.

有没有办法用"安慰剂"异常子类来处理它?即

class MyException(Exception):
    def __init__(self, value):
        # literally do nothing. return to program flow
        pass
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
194
查看次数

将列表函数应用于itertools.groupby中的嵌套生成器

list当应用于嵌套生成器时,函数如何表现?在下面的代码片段中,我发现行为相当令人费解:似乎list消耗了大多数嵌套生成器,而最后一个仍保留一个元素:

>>> from itertools import groupby
>>> xs = [1, 2, 2, 3, 3]
>>> for k, g in list(groupby(xs)):
...     print(k, list(g))
1 []
2 []
3 [3]
Run Code Online (Sandbox Code Playgroud)

python iterator generator python-3.x

4
推荐指数
1
解决办法
404
查看次数

使用 self 和类名调用方法之间的区别?

class A:

    def __init__(self, text):
        self.printStats()
        A.printStats(text)

    def printStats(self):
        print(self)

a = A("Hello")
Run Code Online (Sandbox Code Playgroud)

这打印:

<A object at 0x7f47e2f08ac8>
Hello
Run Code Online (Sandbox Code Playgroud)

为什么这 ( A.printStats(text)) 是可能的?我明白发生了什么(self参考文献text),但我不明白为什么。

python python-3.x

4
推荐指数
2
解决办法
476
查看次数

Dateutil和Pytz缺少依赖项 - Python

我试图运行代码进行投资组合优化,我在导入大熊猫时得到以下错误.

Traceback (most recent call last):
  File "/Users/***/Desktop/Markowitz-master/MarkowitzOpt.py", line 2, in <module>
    from pandas import Series, DataFrame
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/__init__.py", line 18, in <module>
    raise ImportError("Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['pytz', 'dateutil']
Run Code Online (Sandbox Code Playgroud)

我使用pip freeze检查所有已安装的软件包,并安装了puts和dateutil.

任何见解将不胜感激!

python python-2.7

4
推荐指数
1
解决办法
6436
查看次数

用于收集忽视排序的项目的哈希函数

我正在使用该hash()函数来获取包含两个整数和两个字符串的对象的哈希值.而且,我有一个字典,我存储这些对象; 过程是我检查对象是否存在哈希值,如果是,我更新,如果不是我插入新的.

问题在于,在创建对象时,我不知道对象变量的顺序,我想将对象视为相同,无论这些变量的顺序如何.

是否有一个函数的替代函数hash()不考虑变量的顺序?

#Consequently what I want is:
hash((int1,str1,int2,str2)) == hash((int2,str2,int1,str1)) 
Run Code Online (Sandbox Code Playgroud)

python hash cryptography hashcode

4
推荐指数
1
解决办法
478
查看次数

如何使用 timedelta 和 timezone.now 作为默认值?

在 Django 模型中,如何使用timezone.now?

在职的:

end_date = models.DateTimeField(default=timezone.now() + timezone.timedelta(days=365))
Run Code Online (Sandbox Code Playgroud)

不工作

end_date = models.DateTimeField(default=timezone.now + timezone.timedelta(days=365))
Run Code Online (Sandbox Code Playgroud)

我认为timezone.now是一个每次创建对象时都会运行的函数。从而发生错误。

python django django-models

4
推荐指数
1
解决办法
4766
查看次数

python3.5中Kmeans的导入错误

In [1]: import sqlite3

In [2]: import pandas as pd

In [3]: import numpy as np

In [4]: import matplotlib.pyplot as plt
In [5]: from sklearn.cluster import Kmeans
Run Code Online (Sandbox Code Playgroud)
ImportError                               Traceback (most recent call last)
<ipython-input-5-0125bea01c25> in <module>()
----> 1 from sklearn.cluster import Kmeans

ImportError: cannot import name 'Kmeans'
Run Code Online (Sandbox Code Playgroud)

Scikit-learn 版本是 0.18.2

python scikit-learn

4
推荐指数
1
解决办法
6030
查看次数

`return iterator` 和 `yield from iterator` 之间的区别

我正在尝试实现我自己的版本itertools.compress,问题是我偶然发现了返回类型。我的意思是这两个函数都返回一个迭代器,但我认为第二个函数不被视为生成器函数,因为里面没有 yield 语句。所以我的问题是,这两个实现是等价的吗?

def compress (seq, selectors):
    from operator import itemgetter
    fst = itemgetter (0)
    snd = itemgetter (1)
    yield from map (fst, filter (snd, zip (seq, selectors)))

def compress (seq, selectors):
    from operator import itemgetter
    fst = itemgetter (0)
    snd = itemgetter (1)
    return map (fst, filter (snd, zip (seq, selectors)))
Run Code Online (Sandbox Code Playgroud)

python python-itertools python-3.x yield-from

4
推荐指数
2
解决办法
2372
查看次数