小编Sch*_*tti的帖子

1320
推荐指数
13
解决办法
37万
查看次数

我可以在python中使用一个可变对象作为字典键.这不是不允许的吗?

class A(object):
    x = 4

i = A()
d = {}

d[i] = 2

print d

i.x = 10

print d
Run Code Online (Sandbox Code Playgroud)

我认为只有不可变对象可以是字典键,但上面的对象是可变的.

python dictionary

18
推荐指数
4
解决办法
7816
查看次数

Google Python风格指南

为什么Google Python样式指南更喜欢列表推导和for循环而不是filter,map和reduce?

不推荐使用的语言功能:..."使用列表推导和循环而不是过滤,映射和减少."

给出的解释是:"我们不使用任何不支持这些功能的Python版本,因此没有理由不使用新的样式."

python

15
推荐指数
3
解决办法
7590
查看次数

Python多线程访问同一文件

我有两个线程,一个写入文件,另一个周期性地将文件移动到另一个位置.写入总是open在写入消息之前调用,并close在写入消息之后调用.搬家公司使用shutil.move来搬家.

我看到第一次移动完成后,编写器无法再写入文件,即第一次移动后文件的大小始终为0.难道我做错了什么?

python multithreading file

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

I/O错误(套接字错误):[Errno 111]连接被拒绝

我有一个程序,使用urllib定期获取网址,我看到间歇性错误,如:

I/O错误(套接字错误):[Errno 111]连接被拒绝.

它有90%的时间可以正常工作,但是它失败了10%.如果在失败后立即重试获取,则成功.我无法弄清楚为什么会这样.我试图查看是否有可用的端口,它们是.任何调试想法?

有关其他信息,堆栈跟踪是:

File "/usr/lib/python2.6/urllib.py", line 203, in open 
    return getattr(self, name)(url)

File "/usr/lib/python2.6/urllib.py", line 342, in open_http
    h.endheaders()

File "/usr/lib/python2.6/httplib.py", line 868, in endheaders
    self._send_output()

File "/usr/lib/python2.6/httplib.py", line 740, in _send_output
    self.send(msg)

File "/usr/lib/python2.6/httplib.py", line 699, in send
    self.connect()

File "/usr/lib/python2.6/httplib.py", line 683, in connect
    self.timeout)

File "/usr/lib/python2.6/socket.py", line 512, in create_connection
    raise error, msg
Run Code Online (Sandbox Code Playgroud)

编辑 - 谷歌搜索不是很有帮助,我得到的是我从中获取的服务器有时拒绝连接,我如何验证它不是我的代码中的错误,这确实是这种情况?

python sockets urllib

12
推荐指数
2
解决办法
14万
查看次数

有没有更好的,pythonic方式来做到这一点?

这是我的第一个python程序 -

要求:在每行中读取由{adId UserId}组成的文件.对于每个ad​​Id,打印唯一userIds的数量.

这是我的代码,从阅读python文档放在一起.你能不能给我反馈一下如何以更多的python-ish方式写这个?

代码:

import csv

adDict = {}
reader = csv.reader(open("some.csv"), delimiter=' ')
for row in reader:
    adId = row[0]
    userId = row[1]
    if ( adId in adDict ):
        adDict[adId].add(userId)
    else:
        adDict[adId] = set(userId)

for key, value in adDict.items():
    print (key, ',' , len(value))
Run Code Online (Sandbox Code Playgroud)

谢谢.

python dictionary set

10
推荐指数
3
解决办法
643
查看次数

从git rebase中恢复

我有一个本地分支工作,在那里我创建了两个新文件a.py,b.py并提交了它们.

然后,我没有做"git rebase origin/master",而是意外地输入了"git rebase origin master",现在我做的提交已经消失了,文件也没了.有谁知道如何恢复我的文件?

git rebase

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

开源HTTP或HTTPS代理

我想将浏览器发出的所有HTTP请求记录到文件中,所以我想我可以在本地运行HTTP/S代理并执行此操作.但是,proxies.xhaus.com/上的代理不符合我的需求 - 无论是HTTPS支持还是没有日志记录.你们中的任何人都知道可以同时执行HTTPS和HTTP的代理,并允许我将浏览器流量记录到文件中吗?

谢谢

https proxy

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

列表乘法

我有一个列表L = [a,b,c],我想生成一个元组列表:

[(a,a), (a,b), (a,c), (b,a), (b,b), (b,c)...] 
Run Code Online (Sandbox Code Playgroud)

我试过做L*L但它不起作用.有人能告诉我如何在python中得到它.

python list cartesian-product

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

如何在编辑python代码时加载我的.el文件

我收集了一个文件中的emacs自定义列表my-python-setup.el.我怎样才能确保emacs首先加载python-mode然后只在我编辑python文件时加载这个库?

我试过试试

(load-library "my-python-setup")
Run Code Online (Sandbox Code Playgroud)

在我的.emacs文件中,但是会为所有类型的文件加载这些自定义项.

这些自定义位于python-mode之上,auto-mode-alist当前值为("\\.py\\'" . python-mode).

python emacs

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