小编Alb*_*eit的帖子

使用Python中的lambda进行延迟评估

在循环中,我试图将两个节点的两个value()s的比较推迟到以后的时间.

class Node():
    def __init__(self, v):
        self.v = v
    def value(self):
        return self.v

nodes = [Node(0), Node(1), Node(2), Node(3), Node(4), Node(2)]
results = []
for i in [0, 1, 2]:
    j = i + 3
    results.append(lambda: nodes[i].value() == nodes[j].value())

for result in results:
    print result
Run Code Online (Sandbox Code Playgroud)

结果都是True(因为我,j == 2,5对于所有lambda).我怎样才能推迟执行lambda直到实际调用它,但是使用正确的变量绑定?lambda中的表达式并不一定都是相等的...还有一堆其他更复杂的表达式.

谢谢你的帮助!

python lambda deferred-execution

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

Linux服务器上的Python日志记录速度极慢...但在Linux开发VM上运行速度很快?

使用完全相同的代码,每次调用服务器上的logger方法(例如logger.debug)大约需要50ms,而在dev机器上则不到1ms.记录器输出到文件,只需一点格式化.

除了记录速度减慢之外,服务器的速度是原来的两倍.

我正在开发在Windows 7上的VMWare内运行的Ubuntu 11.04(Gnome).服务器正在运行Ubuntu Server 11.04(没有GUI,纯控制台).日志记录模块是官方的"日志记录"模块("import logging ... logger = logging.getLogger('mylogger')").

知道是什么原因引起的吗?这非常令人沮丧!

谢谢你的帮助!

编辑:两台机器的版本都返回"Python 2.7.1+".两台机器都运行64位Ubuntu.

硬盘配置服务器是软件RAID-1,而在dev计算机上只有一个驱动器.

编辑2:接受Fabian的答案,虽然它没有完全解决问题.

解决方案:写入控制台,周期非常慢.我测试了将X写入文件,并将X写入控制台,它比控制台慢了大约100倍.我不知道为什么会这样,但我只是从另一台计算机上运行了我用ssh运行的东西,一切都解决了.

python console ubuntu performance logging

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

使用 Python 修剪(删除帧)视频

我想修剪 - 在开始和结束时切断帧 - 可以采用各种不同格式的视频,然后保存修剪后的视频。

有没有关于如何做到这一点的图书馆或建议?

谢谢!

python video trim frames

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

在特定接口上接收组播数据

tcmpdump可以查看eth2上特定组和端口的所有组播流量,但我的Python程序不能.在Ubuntu 12.04上运行的Python程序:

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

# Multicast port is 52122
sock.bind(('', 52122))

# Interface eth2 IP is 1.2.3.4, multicast group is 6.7.8.9
mreq = socket.inet_aton('6.7.8.9')+socket.inet_aton('1.2.3.4')
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)

while True:
    print '\nwaiting to receive message'
    data, address = sock.recvfrom(1024)
    print data
Run Code Online (Sandbox Code Playgroud)

当我使用另一个程序向eth2发送组播数据包时,它可以工作并打印数据包.但它无法看到所有当前的多播流量.如果我在与上述程序相同的端口和组上的eth2上运行tcpdump:

sudo tcpdump -i eth2 host 6.7.8.9 and port 52122
Run Code Online (Sandbox Code Playgroud)

它会看到我从另一个程序发送的数据包和所有当前的多播流量.它的输出看起来像这样......

# Packet sent from my other program
09:52:51.952714 IP 1.2.3.4.57940 > 6.7.8.9.52122: UDP, length 19
# Packet send from the outside world
09:52:52.143339 IP …
Run Code Online (Sandbox Code Playgroud)

python sockets multicast tcpdump packet

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

加权样本的弹性净回归或套索回归(sklearn)

Scikit-learn允许将样本权重提供给线性,逻辑和岭回归(以及其他),但不能提供给弹性净或套索回归。通过样本权重,我的意思是要拟合的输入的每个元素(以及相应的输出)的重要性都在变化,并且应该对与权重成正比的估计系数产生影响。

在将数据传递给ElasticNet.fit()合并样本权重之前,有什么方法可以处理?

如果不是,是否有根本原因是不可能的?

谢谢!

python regression linear-regression scikit-learn

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

将 .gz 文件添加到 .zip 存档而不解压缩和重新压缩?

假设 gzip 文件和 zip 存档都使用 DEFLATE。

由于两者都会为特定文件存储相同的原始压缩数据,是否可以将预压缩的 .gz 文件添加到现有的 .zip 存档中?

一些元数据可能会丢失(或不可用),但我更关心原始文件数据。

compression zip gzip deflate

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