小编wja*_*rea的帖子

如何在Python中打印到stderr?

有几种方法可以写入stderr:

# Note: this first one does not work in Python 3
print >> sys.stderr, "spam"

sys.stderr.write("spam\n")

os.write(2, b"spam\n")

from __future__ import print_function
print("spam", file=sys.stderr)
Run Code Online (Sandbox Code Playgroud)

这似乎与Python#13 †的禅宗相矛盾,那么这里有什么区别,这种方式有哪些优点或缺点?应该使用哪种方式?

应该有一个 - 最好只有一个 - 显而易见的方法.

python printing stderr zen-of-python

1246
推荐指数
13
解决办法
77万
查看次数

Python整数递增与++

可能重复:
Python:递增和递减运算符的行为

当我回顾我的VB6时,我总是嘲笑自己,并且想:"现代语言不允许用双加号增加?":

number++
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,我在Python文档中找不到任何相关内容.我真的要服从自己number = number + 1吗?人们不会使用这种++/--符号吗?

python syntax

734
推荐指数
7
解决办法
104万
查看次数

如何在Python中逐行读取大文件

我想迭代整个文件的每一行.一种方法是通过读取整个文件,将其保存到列表中,然后浏览感兴趣的行.这种方法使用了大量内存,所以我正在寻找替代方案.

我的代码到目前为止:

for each_line in fileinput.input(input_file):
    do_something(each_line)

    for each_line_again in fileinput.input(input_file):
        do_something(each_line_again)
Run Code Online (Sandbox Code Playgroud)

执行此代码会显示错误消息:device active.

有什么建议?

目的是计算成对的字符串相似性,意味着对于文件中的每一行,我想与每隔一行计算Levenshtein距离.

python file-read

517
推荐指数
6
解决办法
77万
查看次数

如何防止批处理文件执行后自动关闭控制台

我可以在批处理文件的末尾放置什么命令来防止在执行文件后自动关闭控制台?

windows command-line batch-file

480
推荐指数
11
解决办法
60万
查看次数

"是"运算符与整数意外行为

为什么以下在Python中出现意外行为?

>>> a = 256
>>> b = 256
>>> a is b
True           # This is an expected result
>>> a = 257
>>> b = 257
>>> a is b
False          # What happened here? Why is this False?
>>> 257 is 257
True           # Yet the literal numbers compare properly
Run Code Online (Sandbox Code Playgroud)

我使用的是Python 2.5.2.尝试一些不同版本的Python,似乎Python 2.3.3显示了99到100之间的上述行为.

基于以上所述,我可以假设Python在内部实现,使得"小"整数以不同于大整数的方式存储,is运算符可以区分.为什么泄漏抽象?当我不知道它们是否是数字时,比较两个任意对象以查看它们是否相同的更好的方法是什么?

python int identity operators python-internals

476
推荐指数
11
解决办法
6万
查看次数

使用Unix中的Less来转到特定的行号

我有一个大约有一百万行的文件.我需要转到第320123行来检查数据.我怎么做?

unix shell search less-unix

329
推荐指数
5
解决办法
22万
查看次数

第一次出现时分裂

在第一次出现分隔符时拆分字符串的最佳方法是什么?

例如:

"123mango abcd mango kiwi peach"
Run Code Online (Sandbox Code Playgroud)

分裂第一个mango得到:

"abcd mango kiwi peach"
Run Code Online (Sandbox Code Playgroud)

python split

273
推荐指数
5
解决办法
22万
查看次数

什么是Python 3.5中的类型提示

__CODE__据说其中一个被谈到的功能__CODE__.

的例子__CODE__本中提到的文章同时也提到使用类型负责任提示.有人可以解释更多关于它以及什么时候应该使用它什么时候不使用?

python type-hinting python-3.x python-3.5

216
推荐指数
3
解决办法
9万
查看次数

转置列表清单

让我们来:

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)

我正在寻找的结果是

r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Run Code Online (Sandbox Code Playgroud)

并不是

r = [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
Run Code Online (Sandbox Code Playgroud)

非常感激

python transpose list

200
推荐指数
6
解决办法
18万
查看次数

两个对象之间的通用深度差异

我有两个对象:oldObjnewObj.

数据oldObj用于填充表单,newObj是用户更改此表单中的数据并提交数据的结果.

两个对象都很深,即.它们具有对象或对象数组等属性 - 它们可以是n级深度,因此diff算法需要是递归的.

现在我需要不只是从弄清楚什么改变(如添加/更新/删除)oldObjnewObj,却怎么也最能代表它.

到目前为止,我的想法只是构建一个genericDeepDiffBetweenObjects方法,它将返回表单上的对象,{add:{...},upd:{...},del:{...}}但后来我想:其他人必须先需要它.

那么......有没有人知道一个库或一段代码可以做到这一点,并且可能有更好的方式来表示差异(以一种仍然是JSON可序列化的方式)?

更新:

我想到了一种更好的方式来表示更新的数据,使用相同的对象结构newObj,但将所有属性值转换为表单上的对象:

{type: '<update|create|delete>', data: <propertyValue>}
Run Code Online (Sandbox Code Playgroud)

所以,如果newObj.prop1 = 'new value'oldObj.prop1 = 'old value'它会设置returnObj.prop1 = {type: 'update', data: 'new value'}

更新2:

当我们得到数组的属性时,它会变得非常毛茸茸,因为数组[1,2,3]应该被计算为等于[2,3,1],这对于基于值的类型的数组(如string,int和bool)来说非常简单,但是当涉及到它时,它实际上很难处理引用类型的数组,如对象和数组.

应该找到的示例数组相等:

[1,[{c: 1},2,3],{a:'hey'}] and [{a:'hey'},1,[3,{c: 1},2]]
Run Code Online (Sandbox Code Playgroud)

检查这种类型的深度值相等不仅非常复杂,而且还要找出一种表示可能的变化的好方法.

javascript compare object

194
推荐指数
12
解决办法
13万
查看次数