javascript

java

python

c#

android

node.js

reactjs

c++

php

html

jquery

css

git

.net

ios

ruby-on-rails

sql

c

string

ruby

python-如何以所有可能的方式将列表分成几对

我有一个清单(为简单起见,请说6个元素)

L = [0, 1, 2, 3, 4, 5]

我想以所有可能的方式将其分成几对。 我显示一些配置:

[(0, 1), (2, 3), (4, 5)]
[(0, 1), (2, 4), (3, 5)]
[(0, 1), (2, 5), (3, 4)]

等等。在这里N和成对的顺序并不重要,即

[(0, 1), (2, 3), (4, 5)] = [(0, 1), (4, 5), (2, 3)]

这种配置的总数是N,其中N是我列出的长度。

如何使用Python编写生成器,为我提供任意N的所有可能配置?

trans by 2019-11-19T03:30:26Z

字符串-Python:如何确定语言?

我想得到这个:

Input text: "ру́сский язы́к"
Output text: "Russian" 

Input text: "中文"
Output text: "Chinese" 

Input text: "にほんご"
Output text: "Japanese" 

Input text: "العَرَبِيَّة"
Output text: "Arabic" 

如何在python中完成? 谢谢。

trans by 2019-11-19T03:01:38Z

python-在Flask中使用Google OAuth2

谁能给我指出一个完整的示例,而不是在App Engine上使用OAuth2和Flask对Google帐户进行身份验证?

我试图让用户授予对Google日历的访问权限,然后使用该访问权限从日历中检索信息并对其进行进一步处理。 我还需要存储并稍后刷新OAuth2令牌。

我看过Google的oauth2client库,可以开始检索授权代码,但是我从那里有点迷失了。 通过查看Google的OAuth 2.0游乐场,我了解到我需要请求刷新令牌和访问令牌,但是该库中提供的示例仅适用于App Engine和Django。

我也尝试过使用Flask的OAuth模块,该模块包含对OAuth2的引用,但是我也看不到任何交换授权代码的方法。

我可能可以手工编写请求的代码,但更喜欢使用或改编现有的python模块,该模块使请求变得容易,正确处理可能的响应,甚至可以帮助存储令牌。

有这样的事吗?

trans by 2019-11-19T02:14:42Z

表单发送错误,Flas

有两个<input type="submit">的表单。但是当我发送它时,第二次提交会导致错误。

布局:

<form action="{{ url_for('index') }}" method="post">
    <input type="submit" name="add" value="Like">
    <input type="submit" name="remove" value="Dislike">
</form>

main.py:

...
if request.method == 'POST':
    if request.form['add']:
        return redirect(url_for('index'))
    elif request.form['remove']:
        return redirect(url_for('index'))
...

第一次提交(添加)效果很好,但是第二次(删除)...:

错误的请求浏览器(或代理)发送了该服务器无法理解的请求。

我该如何解决此错误?

UPD:

这很简单:request.form返回ImmutableMultiDict:

... 
if 'Like' in request.form.values():
     ...
elif 'Dislike' in request.form.values():
     ...
trans by 2019-11-19T01:33:42Z

python-Keras如何处理多标签分类?

我不确定在以下情况下如何解释Keras的默认行为:

我的Y(基本事实)是使用scikit-learn的y_train()设置的。

因此,举一个随机的例子,我的y_train列的一行被热编码为:y_train

因此,我有11个可以预测的课程,而且不只一个是真的。 因此,问题的多标签性质。 此特定样本有三个标签。

我像对待非多标签问题(照常营业)那样训练模型,但没有任何错误。

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD

model = Sequential()
model.add(Dense(5000, activation='relu', input_dim=X_train.shape[1]))
model.add(Dropout(0.1))
model.add(Dense(600, activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(y_train.shape[1], activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy',])

model.fit(X_train, y_train,epochs=5,batch_size=2000)

score = model.evaluate(X_test, y_test, batch_size=2000)
score

当Keras遇到我的y_train并且看到它是“多”单编码时,该怎么办?这意味着y_train的每一行中都存在一个以上的“ 1”? 基本上,Keras是否会自动执行多标签分类? 评分指标的解释有何不同?

trans by 2019-11-19T01:30:48Z

python-从URL下载返回的Zip文件

如果我有一个URL,当在Web浏览器中提交该URL时,会弹出一个对话框来保存一个zip文件,我将如何在Python中捕获并下载该zip文件?

trans by 2019-11-19T00:20:43Z

我如何将str.translate与Unicode字符串一起使用?

我有以下代码:

import string
def translate_non_alphanumerics(to_translate, translate_to='_'):
    not_letters_or_digits = u'!"#%\'()*+,-./:;<=>?@[\]^_`{|}~'
    translate_table = string.maketrans(not_letters_or_digits,
                                       translate_to
                                         *len(not_letters_or_digits))
    return to_translate.translate(translate_table)

这对非unicode字符串非常有用:

>>> translate_non_alphanumerics('<foo>!')
'_foo__'

但是对于unicode字符串失败:

>>> translate_non_alphanumerics(u'<foo>!')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 5, in translate_non_alphanumerics
TypeError: character mapping must return integer, None or unicode

我对str.translate()方法的Python 2.6.2文档中的“ Unicode对象”段落没有任何意义。

如何使它适用于Unicode字符串?

trans by 2019-11-19T00:04:08Z

任何想法如何在Windows框上更新python PIP?

pip install --upgrade pip无法正常工作,因为Windows FS受到脑部损坏,并且不允许您删除打开的文件。

我尝试将环境设置为要更新的virtualenv,然后从其他pip运行,但是失败了:

(jm) E:\python\jm>c:\Python26\Scripts\pip install --upgrade pip
Downloading/unpacking pip
  Running setup.py egg_info for package pip
    warning: no previously-included files matching '*.txt' found under directory 'docs\_build'
    no previously-included directories found matching 'docs\_build\_sources'
Installing collected packages: pip
  Found existing installation: pip 0.7.1
    Uninstalling pip:
      Successfully uninstalled pip
  Running setup.py install for pip
    warning: no previously-included files matching '*.txt' found under directory 'docs\_build'
    no previously-included directories found matching 'docs\_build\_sources'
    Installing pip-script.py script to c:\Python26\Scripts
    Installing pip.exe script to c:\Python26\Scripts
    Installing pip.exe.manifest script to c:\Python26\Scripts
    Installing pip-2.6-script.py script to c:\Python26\Scripts
    Installing pip-2.6.exe script to c:\Python26\Scripts
    Installing pip-2.6.exe.manifest script to c:\Python26\Scripts
Exception:
Traceback (most recent call last):
  File "c:\Python26\lib\site-packages\pip-0.7.1-py2.6.egg\pip\basecommand.py", line 120, in main
  File "c:\Python26\lib\site-packages\pip-0.7.1-py2.6.egg\pip\commands\install.py", line 165, in run
  File "c:\Python26\lib\site-packages\pip-0.7.1-py2.6.egg\pip\req.py", line 1251, in install
  File "c:\Python26\lib\site-packages\pip-0.7.1-py2.6.egg\pip\req.py", line 466, in commit_uninstall
  File "c:\Python26\lib\site-packages\pip-0.7.1-py2.6.egg\pip\req.py", line 1549, in commit
  File "c:\Python26\lib\shutil.py", line 216, in rmtree
    rmtree(fullname, ignore_errors, onerror)
  File "c:\Python26\lib\shutil.py", line 216, in rmtree
    rmtree(fullname, ignore_errors, onerror)
  File "c:\Python26\lib\shutil.py", line 221, in rmtree
    onerror(os.remove, fullname, sys.exc_info())
  File "c:\Python26\lib\shutil.py", line 219, in rmtree
    os.remove(fullname)
WindowsError: [Error 5] Access is denied: 'c:\\users\\mark\\appdata\\local\\temp\\pip-gvsove-uninstall\\python26\\scripts\\pip.exe'

Storing complete log in C:\Users\mark\AppData\Roaming\pip\pip.log

(jm) E:\python\jm>dir c:\Users\mark\AppData\Local\temp\pip-gvsove-uninstall\python26\scripts
 Volume in drive C has no label.
 Volume Serial Number is 74E4-FE9F

 Directory of c:\Users\mark\AppData\Local\temp\pip-gvsove-uninstall\python26\scripts

12/07/2010  11:32 AM    <DIR>          .
12/07/2010  11:32 AM    <DIR>          ..
05/14/2010  05:54 PM             7,168 pip.exe
               1 File(s)          7,168 bytes
               2 Dir(s)  22,824,603,648 bytes free

(jm) E:\python\jm>del c:\Users\mark\AppData\Local\temp\pip-gvsove-uninstall\python26\scripts\pip.exe

我希望其他人已经找到解决方法。 在Linux上没有问题。

trans by 2019-11-18T23:37:50Z

json-Python / Django:如何断言单元测试结果包含某个字符串?

在python单元测试(实际上是Django)中,正确的result语句是什么,它将告诉我测试结果是否包含我选择的字符串?

self.assertContainsTheString(result, {"car" : ["toyota","honda"]})

我想确保我的result至少包含我指定为上面第二个参数的json对象(或字符串)

{"car" : ["toyota","honda"]}
trans by 2019-11-18T23:32:37Z

我如何使用Django模板渲染树结构(递归)?

我的内存中有一个树结构,我想使用Django模板以HTML呈现。

class Node():
  name = "node name"
  children = []

将存在一些对象root,即Node,而childrenNodes的列表。 root将在模板的内容中传递。

我已经找到了关于如何实现此目标的讨论,但是张贴者建议这在生产环境中可能不是很好。

有人知道更好的方法吗?

trans by 2019-11-18T23:20:25Z

我如何防止使用tkinter调整窗口大小?

我有一个程序,该程序创建一个窗口,其中根据复选框显示一条消息。

显示消息而不显示消息时,如何使窗口大小恒定?

from Tkinter import *

class App:
    def __init__(self,master):
        self.var = IntVar()
        frame = Frame(master)
        frame.grid()
        f2 = Frame(master,width=200,height=100)
        f2.grid(row=0,column=1)
        button = Checkbutton(frame,text='show',variable=self.var,command=self.fx)
        button.grid(row=0,column=0)
        msg2="""I feel bound to give them full satisfaction on this point"""
        self.v= Message(f2,text=msg2)
    def fx(self):
        if self.var.get():
            self.v.grid(column=1,row=0,sticky=N)
        else:
            self.v.grid_remove()

top = Tk()
app = App(top)            
top.mainloop()
trans by 2019-11-18T22:56:55Z

闭包-Python lambda绑定到本地值

以下代码两次吐出1,我希望看到0然后1

def pv(v) :
  print v


def test() :
  value = []
  value.append(0)
  value.append(1)
  x=[]
  for v in value :
    x.append(lambda : pv(v))
  return x

x = test()
for xx in x:
  xx()

我期望python lambdas可以在后台绑定到本地变量指向的引用。 但是,事实并非如此。 我已经在大型系统中解决了这个问题,在大型系统中,lambda正在执行现代C ++的bind等效(例如'boost :: bind'),在这种情况下,您将绑定到智能ptr或copy构造lambda的副本。

那么,如何将局部变量绑定到lambda函数并在使用时使其保留正确的引用? 我对这种行为很不满意,因为我不希望带有垃圾收集器的语言有这种行为。

有问题的代码如下(l3_e是导致问题的变量):

 for category in cat :
      for l2 in cat[category].entries :
        for l3 in cat[category].entries[l2].entry["sub_entries"] :
          l3_e = cat[category].entries[l2].entry["sub_entries"][l3]
          url = "http://forums.heroesofnewerth.com/" + l3_e.entry["url"]
          self.l4_processing_status[l3_e] = 0
          l3_discovery_requests.append( Request(
            url, callback = lambda response : self.parse_l4(response,l3_e)))
          print l3_e.entry["url"]
    return l3_discovery_requests
trans by 2019-11-18T22:05:51Z

python-tf.shape()在数十个错误的形状

我定义这样的张量:

x = tf.get_variable("x", [100])

但是当我尝试打印张量的形状时:

print( tf.shape(x) )

我得到Tensor(“ Shape:0”,shape =(1,),dtype = int32),为什么输出结果不应为shape =(100)

trans by 2019-11-18T18:35:33Z

winapi-如何摆脱Python Tkinter根窗口?

您是否知道隐藏或以其他任何方式清除显示的由Tk()打开的根窗口的聪明方法? 我只想使用普通对话框。

我应该跳过对话框并将所有组件都放在根窗口中吗? 有可能还是可取的? 还是有更聪明的解决方案?

trans by 2019-11-18T17:07:52Z

python-获取警告的追溯

在numpy中,我们可以执行np.seterr(invalid='raise')来获取对引发错误的警告的回溯(请参见此文章)。

  • 是否有跟踪警告的一般方法?
  • 发出警告时,我可以使python进行追溯吗?
trans by 2019-11-18T16:51:55Z

使用Jython将我的Python脚本作为JAR文件分发吗?

我已经担任Python程序员近两年了,我习惯于编写一些小的脚本来自动化我在办公室要做的一些重复性任务。 现在,显然我的同事注意到了这一点,他们也想要这些脚本。

其中有些装有Mac,有些装有Windows。 我在Windows上制作的。 我调查了使用py2exe甚至py2app来制作我的脚本的本机的可能性,但是他们从未满足于我...

我知道他们所有的人在他们的系统上都有JVM,那么我可以使用Jython这样的东西给他们一个脚本的可执行JAR文件吗?

这是多么可行...我的意思是,我不知道如何为Jython编写脚本,写这些脚本时我也不在乎...它将带来什么样的问题?

trans by 2019-11-18T15:46:31Z

Python pickle协议选择?

我使用python 2.7并尝试腌制对象。 我想知道泡菜协议之间的真正区别是什么。

import numpy as np
import pickle
class data(object):
    def __init__(self):
        self.a = np.zeros((100, 37000, 3), dtype=np.float32)

d = data()
print "data size: ", d.a.nbytes/1000000.
print "highest protocol: ", pickle.HIGHEST_PROTOCOL
pickle.dump(d,open("noProt", 'w'))
pickle.dump(d,open("prot0", 'w'), protocol=0)
pickle.dump(d,open("prot1", 'w'), protocol=1)
pickle.dump(d,open("prot2", 'w'), protocol=2)


out >> data size:  44.4
out >> highest protocol:  2

然后我发现保存的文件在磁盘上有不同的大小:

  • pickle:177.6MB
  • pickle:177.6MB
  • pickle:44.4MB
  • pickle: 44.4MB

我知道pickle是人类可读的文本文件,所以我不想使用它。我猜协议0是默认提供的。

我想知道协议1和协议2有什么区别,请问为什么我应该选择一个或另一个?

picklecPickle哪种更好用?

trans by 2019-11-18T15:40:30Z

子类-在Python中重分类实例

我有一个由外部库提供的类。 我已经创建了该类的子类。 我也有一个原始类的实例。

现在,我想将此实例转换为我的子类的一个实例,而不更改该实例已经具有的任何属性(但无论如何我的子类都会覆盖这些属性)。

以下解决方案似乎有效。

# This class comes from an external library. I don't (want) to control
# it, and I want to be open to changes that get made to the class
# by the library provider.
class Programmer(object):
    def __init__(self,name):
        self._name = name

    def greet(self):
        print "Hi, my name is %s." % self._name

    def hard_work(self):
        print "The garbage collector will take care of everything."

# This is my subclass.
class C_Programmer(Programmer):
    def __init__(self, *args, **kwargs):
        super(C_Programmer,self).__init__(*args, **kwargs)
        self.learn_C()

    def learn_C(self):
        self._knowledge = ["malloc","free","pointer arithmetic","curly braces"]

    def hard_work(self):
        print "I'll have to remember " + " and ".join(self._knowledge) + "."

    # The questionable thing: Reclassing a programmer.
    @classmethod
    def teach_C(cls, programmer):
        programmer.__class__ = cls # <-- do I really want to do this?
        programmer.learn_C()


joel = C_Programmer("Joel")
joel.greet()
joel.hard_work()
#>Hi, my name is Joel.
#>I'll have to remember malloc and free and pointer arithmetic and curly braces.

jeff = Programmer("Jeff")

# We (or someone else) makes changes to the instance. The reclassing shouldn't
# overwrite these.
jeff._name = "Jeff A" 

jeff.greet()
jeff.hard_work()
#>Hi, my name is Jeff A.
#>The garbage collector will take care of everything.

# Let magic happen.
C_Programmer.teach_C(jeff)

jeff.greet()
jeff.hard_work()
#>Hi, my name is Jeff A.
#>I'll have to remember malloc and free and pointer arithmetic and curly braces.

但是,我不认为该解决方案不会包含我没有想到的警告(对三重否定表示抱歉),尤其是因为重新分配神奇的__class__ = newclass感觉不对。 即使这行得通,我也不禁感到应该有一种更加Python化的方式来做到这一点。

在那儿?


编辑:谢谢大家的回答。 这是我从他们那里得到的:

  • 尽管通过分配__class__ = newclass对实例进行重分类的想法并不是广泛使用的习语,但是大多数答案(在撰写本文时,每6个问题中就有4个)认为这是一种有效的方法。 一个回答者(由ojrac撰写)说,“乍一看,这很奇怪”,我对此表示同意(这是提出问题的原因)。 只有一个答案(由Jason Baker撰写;有两个正面的评论和投票)积极地阻止了我这样做,但是这样做的依据更多是示例用例,而不是一般的技术。

  • 无论是肯定的还是否定的,答案都没有找到这种方法的实际技术问题。 一个小例外是jls,他提到提防老式类(可能是真的)和C扩展。 我想这种方法应该和Python本身一样好(假设后者是正确的),尽管这种方法可以保持答案,但我想新风格类C扩展应该和Python本身一样好。

关于这是pythonic的问题,有一些肯定的答案,但没有给出真正的原因。 观察Zen(__class__ = newclass),我想在这种情况下最重要的规则是“显式胜于隐式”。 不过,我不确定该规则是支持还是反对这种重新分类。

  • 使用__class__ = newclass似乎更明确,因为我们明确地对对象进行了更改,而不是使用魔术。

  • 使用__class__ = newclass似乎更明确,因为我们明确地说“这现在是'newclass'类的对象,期望有不同的行为”,而不是默默地更改属性,但使该对象的用户认为他们正在处理旧类的常规对象。

总结:从技术的角度来看,该方法似乎还可以。 pythonicity问题仍然没有答案,偏向“是”。

我接受了马丁·盖斯勒(Martin Geisler)的回答,因为Mercurial插件示例是一个非常强大的示例(还因为它回答了一个我什至没有问过自己的问题)。 但是,如果在pythonicity问题上有任何争论,我还是想听听他们的看法。 到目前为止谢谢大家。

附言 实际用例是一个UI数据控件对象,该对象需要在运行时增加其他功能。 但是,这个问题是很笼统的。

trans by 2019-11-18T12:52:25Z

的Pip-启动器中的致命错误:无法使用“”创建进程

我通过ampps安装了python 3.5.1,它正在工作。 但是,当我尝试使用pip时,出现以下消息:

Fatal error in launcher: Unable to create process using '"'

我已经将ampps重新安装到不包含任何空格的路径中。 请注意,“ python -m pip”解决方法对我也不起作用,因为每次使用它时都会收到以下消息:

C:\Users\MyUserName\Desktop\Ampps\python\python.exe: Error while finding spec for 'pip.__main__' (<class 'ImportError'>: No module named 'queue'); 'pip' is a package and cannot be directly executed

我如何获得点子才能正常工作? 我希望有一种不用前面的python命令就可以使用pip命令本身的方法。

编辑:这是发生了什么,如果我尝试运行python -c "import pip.__main__"

Traceback (most recent call last):
  File "C:\Users\MyUserName\Desktop\Ampps\python\lib\site-packages\pip\compat\__init__.py", line 11, in <module>
    from logging.config import dictConfig as logging_dictConfig
  File "C:\Users\MyUserName\Desktop\Ampps\python\lib\logging\config.py", line 30, in <module>
    import logging.handlers
  File "C:\Users\MyUserName\Desktop\Ampps\python\lib\logging\handlers.py", line 28, in <module>
    import queue
ImportError: No module named 'queue'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\MyUserName\Desktop\Ampps\python\lib\site-packages\pip\__init__.py", line 13, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "C:\Users\MyUserName\Desktop\Ampps\python\lib\site-packages\pip\utils\__init__.py", line 18, in <module>
    from pip.compat import console_to_str, stdlib_pkgs
  File "C:\Users\MyUserName\Desktop\Ampps\python\lib\site-packages\pip\compat\__init__.py", line 13, in <module>
    from pip.compat.dictconfig import dictConfig as logging_dictConfig
  File "C:\Users\MyUserName\Desktop\Ampps\python\lib\site-packages\pip\compat\dictconfig.py", line 22, in <module>
    import logging.handlers
  File "C:\Users\MyUserName\Desktop\Ampps\python\lib\logging\handlers.py", line 28, in <module>
    import queue
ImportError: No module named 'queue'
trans by 2019-11-18T11:56:48Z

python-了解set()函数

在python中,set(y)是无重复集合的无序集合。 但是,我无法理解它如何生成输出。

例如,考虑以下内容:

>>> x = [1, 1, 2, 2, 2, 2, 2, 3, 3]
>>> set(x)
set([1, 2, 3])

>>> y = [1, 1, 6, 6, 6, 6, 6, 8, 8]
>>> set(y)
set([8, 1, 6])

>>> z = [1, 1, 6, 6, 6, 6, 6, 7, 7]
>>> set(z)
set([1, 6, 7])

set(y)的输出不应该是:set([1, 6, 8])? 我在Python 2.6中尝试了以上两个。

trans by 2019-11-18T10:01:33Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共283页