小编Mar*_*ers的帖子

关于Python内置的sort()方法

sort()Python使用的内置方法是什么算法?是否可以查看该方法的代码?

python sorting algorithm python-internals

94
推荐指数
3
解决办法
5万
查看次数

查找给定范围内所有数字的XOR

给你一个很大的范围[a,b],其中'a'和'b'通常在1到4,000,000,000之间.您必须找出给定范围内所有数字的XOR.

TopCoder SRM中使用了此问题.我看到了比赛中提交的一个解决方案,我无法弄清楚它是如何工作的.

有人可以帮助解释获胜的解决方案:

long long f(long long a) {
     long long res[] = {a,1,a+1,0};
     return res[a%4];
}

long long getXor(long long a, long long b) {
     return f(b)^f(a-1);
}
Run Code Online (Sandbox Code Playgroud)

这里,getXor()是计算传递范围[a,b]中所有数字的xor的实际函数,"f()"是辅助函数.

algorithm

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

passport.js passport.initialize()中间件未使用

我正在使用带有express + mongoose的节点并尝试将passport.js与restful api一起使用.
身份验证成功后我一直收到此异常(我在浏览器上看到了回调网址):

/Users/naorye/dev/naorye/myproj/node_modules/mongoose/lib/utils.js:419
        throw err;
              ^
Error: passport.initialize() middleware not in use
    at IncomingMessage.req.login.req.logIn (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/http/request.js:30:30)
    at Context.module.exports.delegate.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/middleware/authenticate.js:194:13)
    at Context.actions.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/context/http/actions.js:21:25)
    at verified (/Users/naorye/dev/naorye/myproj/node_modules/passport-facebook/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth2.js:133:18)
    at Promise.module.exports.passport.use.GitHubStrategy.clientID (/Users/naorye/dev/naorye/myproj/config/passport.js:91:24)
    at Promise.onResolve (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:162:8)
    at Promise.EventEmitter.emit (events.js:96:17)
    at Promise.emit (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:79:38)
    at Promise.fulfill (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:92:20)
    at /Users/naorye/dev/naorye/myproj/node_modules/mongoose/lib/query.js:1822:13
Run Code Online (Sandbox Code Playgroud)

我已经读过,我应该放在app.use(passport.initialize());app.use(passport.session());之前app.use(app.router);,这就是我所做的.这是我注册中间件的express.js:

var express = require('express'),
    mongoStore = require('connect-mongo')(express),
    flash = require('connect-flash'),
    helpers = require('view-helpers');

module.exports = function (app, config, passport) {
    app.set('showStackError', true);
    // should be placed before express.static
    app.use(express.compress({ …
Run Code Online (Sandbox Code Playgroud)

restful-authentication mongoose node.js express passport.js

94
推荐指数
3
解决办法
7万
查看次数

为什么编程竞赛参赛者使用C++和Java?

在参加今年的Google Code Jam 竞赛之后,我不禁注意到使用C/C++和Java的[成功]参赛者人数众多.在这里可以看到整个比赛中使用的语言分布.

在用C/C++编程好几年后,我最近因其可读/直接的性质而爱上了Python.最近,我学习了OCaml,Scheme等功能语言,甚至像Prolog这样的逻辑语言.这些语言当然有它们的优点,在我看来,在某些情况下,它可以比C++和Java更容易应用.例如,Scheme使用call/cc简化了回溯(回答几个问题所需的工具)和Prolog的逻辑规范,虽然由于其强力性质而效率低下,但可以极大地简化(甚至自动解决)某些难以解决的问题.包裹一个人的大脑.

很明显,竞赛选手应该使用最适合挑战的工具.即使是x86程序集也是图灵完成的 - 这并不能证明解决它的问题.在这种情况下,为什么使用不太常用的语言(如Scheme/Lisp,Prolog,甚至Python)的参赛者比使用C/C++和Java的参赛者要少得多?换句话说,为什么没有成功的参赛者使用的语言虽然可能不那么主流,但可以说是更好的工具?

我的问题有几个动机.最重要的是,我希望成为一名更好的程序员 - 无论是在实践方面还是在竞争方面.在介绍了诸如功能和逻辑编程之类的美妙范例之后,看到有这么多人抛弃它们而转向支持C/C++和Java是令人沮丧的.它甚至让我怀疑我对这些范例的钦佩,担心我不能在编程竞赛中成为Lisp/Scheme/Prolog程序员.

language-agnostic

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

python请求文件上传

我正在执行一个使用Python请求库上传文件的简单任务.我搜索了Stack Overflow,似乎没有人遇到同样的问题,即服务器没有收到该文件:

import requests
url='http://nesssi.cacr.caltech.edu/cgi-bin/getmulticonedb_release2.cgi/post'
files={'files': open('file.txt','rb')}
values={'upload_file' : 'file.txt' , 'DB':'photcat' , 'OUT':'csv' , 'SHORT':'short'}
r=requests.post(url,files=files,data=values)
Run Code Online (Sandbox Code Playgroud)

我正在用我的文件名填充'upload_file'关键字的值,因为如果我把它留空,它会说

Error - You must select a file to upload!
Run Code Online (Sandbox Code Playgroud)

现在我明白了

File  file.txt  of size    bytes is  uploaded successfully!
Query service results:  There were 0 lines.
Run Code Online (Sandbox Code Playgroud)

仅当文件为空时才会出现.所以我不知道如何成功发送我的文件.我知道该文件有效,因为如果我去这个网站并手动填写表格,它会返回一个很好的匹配对象列表,这就是我所追求的.我非常感谢所有提示.

其他一些线程相关(但没有回答我的问题):

python file-upload file python-requests

93
推荐指数
4
解决办法
15万
查看次数

使用if语句列出理解

我想比较2个iterables并打印出两个iterables中出现的项目.

>>> a = ('q', 'r')
>>> b = ('q')


# Iterate over a. If y not in b, print y.
# I want to see ['r'] printed.
>>> print([ y if y not in b for y in a])
                              ^
Run Code Online (Sandbox Code Playgroud)

但是它给了我一个无效的语法错误^.这个lamba函数有什么问题?

python if-statement list-comprehension

90
推荐指数
4
解决办法
13万
查看次数

Supervisor套接字错误问题

$ supervisorctl reread
error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567
Run Code Online (Sandbox Code Playgroud)

我正在尝试在我的生产系统上配置主管,但是我遇到了这个错误.管理程序日志文件为空.

当我输入时supervisorctl,它会抱怨:

http://localhost:9001 refused connection
Run Code Online (Sandbox Code Playgroud)

目前没有任何东西正在侦听端口9001,AFACT:lsof | grep TCP什么都不返回.

supervisord

90
推荐指数
5
解决办法
7万
查看次数

计算CSV Python中有多少行?

我正在使用python(Django Framework)来读取CSV文件.如您所见,我只从这个CSV中拉出2行.我一直想做的是在变量中存储CSV的总行数.

如何获得总行数?

file = object.myfilePath
fileObject = csv.reader(file)
for i in range(2):
    data.append(fileObject.next()) 
Run Code Online (Sandbox Code Playgroud)

我试过了:

len(fileObject)
fileObject.length
Run Code Online (Sandbox Code Playgroud)

python csv count

89
推荐指数
7
解决办法
17万
查看次数

不能使用<union-subclass>生成标识列密钥(TABLE_PER_CLASS)

com.something.SuperClass:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class SuperClass implements Serializable {
    private static final long serialVersionUID = -695503064509648117L;

    long confirmationCode;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO) // Causes exception!!!
    public long getConfirmationCode() {
        return confirmationCode;
    }

    public void setConfirmationCode(long confirmationCode) {
        this.confirmationCode = confirmationCode;
    }
}
Run Code Online (Sandbox Code Playgroud)

com.something.SubClass:

@Entity
public abstract class Subclass extends SuperClass {
    private static final long serialVersionUID = 8623159397061057722L;

    String name;

    @Column(nullable = false)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = …
Run Code Online (Sandbox Code Playgroud)

inheritance hibernate jpa class-table-inheritance

88
推荐指数
3
解决办法
5万
查看次数

什么是最有用和最完整的Java备忘单?

我需要一个Java备忘单,并开始环顾四周,但找不到一个似乎"规范"的 - 这让我感到惊讶,考虑到语言有多广泛.有经验的Java程序员可以建议一个有用的备忘单(组织得很好,你经常使用它)和完整(涵盖真实世界的日常使用),请?

相比之下,这就是我认为Python的规范备忘单:http://rgruet.free.fr/PQR26/PQR2.6.html

它是完整的(语法,类型,语句,内置函数,通用模块,习语)和有用(组织良好:分段和超链接;易于搜索,易于探索).

此外,我已经查看了这里的列表:http://devcheatsheet.com/tag/java/并没有找到可与上面的RGruet的Python备忘单相媲美的备忘单.谷歌"Java作弊表"的最高列表是http://www.cs.princeton.edu/introcs/11cheatsheet/ ,这是相当完整的,但没有组织有用.那里必须有更好的东西!? 顺便说一句,它不需要适合1页. 我知道Java API文档,但这更像是我希望链接到的备忘单,而不是.

更新

一些SO成员认为这个问题是主观的,但我认为我解释了我的标准是相当客观的:在这种情况下,完整性(内容)和有用性(表达)并不难判断.我已经接受了一个更有用的答案,但仍然感到惊讶的是Java没有规范的备忘单.

java

86
推荐指数
3
解决办法
13万
查看次数