小编Sha*_*ger的帖子

两个函数并行多个参数和返回值

我有两个独立的功能.每个都需要很长时间才能执行.

def function1(arg):
     do_some_stuff_here
     return result1

def function2(arg1, arg2, arg3):
     do_some_stuff_here
     return result2
Run Code Online (Sandbox Code Playgroud)

我想并行启动它们,得到它们的结果(知道哪个是哪个)并在之后处理结果.根据我的理解,多处理比Python 2.7中的线程(GIL相关问题)更有效.但是我有点迷失是否更好地使用Process,Pool或Queue以及如何以正确的pythonic方式为我的用例实现它们.

任何帮助赞赏;)

python parallel-processing python-2.7 python-multiprocessing

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

python中的多个集合操作

我是python的新手,现在开始学习它。我在网上练习,遇到以下问题。我试图解决它,但是,尽管我得到了在线验证器的预期结果,但还是得到了预期的结果。请建议我要去哪里错了。

++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++

在一所学校中,共有20名学生,编号从1到20。您将获得三个名为“ C”,“ F”和“ H”的列表,分别代表打板球,足球和曲棍球的学生。根据此信息,找出并打印以下内容:

  • 参加所有三种运动的学生
  • 既打板球又踢足球但不打曲棍球的学生
  • 刚参加两项运动的学生
  • 不参加这三种运动中的任何一项的学生

格式:

输入:

3个列表,分别包含代表板球,足球和曲棍球的学生的数字(范围从1到20)。

输出:

根据问题中提供的限制,有4个不同的列表包含学生。

示例:输入:

[[2, 5, 9, 12, 13, 15, 16, 17, 18, 19]
[2, 4, 5, 6, 7, 9, 13, 16]
[1, 2, 5, 9, 10, 11, 12, 13, 15]] 
Run Code Online (Sandbox Code Playgroud)

预期产量:

[2, 5, 9, 13]
[16]
[12, 15, 16]
[3, 8, 14, 20]
Run Code Online (Sandbox Code Playgroud)

下面是我的代码

C = set(input_list[0])
F = set(input_list[1])
H = set(input_list[2])
A= set(range(1, 21))

print(sorted(list(C & F & H)))
print(sorted(list((C & F) - H))) …
Run Code Online (Sandbox Code Playgroud)

python set python-3.x

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

Python 3.2.2 open('C:\ file.txt')不起作用


不可否认,我是新手; 但是,(我认为)我做了教程所说的(对于我安装的版本),我无法让Python读取文件.其他人有长文件名或路径的问题,但我保持简短和甜蜜...所以我想.
文件本身在一行中包含一个单词.
print('string')有效,len('string')有效......

这是我在IDLE和CMD中得到的,甚至在使用下面的import语句之前:

win32上的Python 3.2.2(默认,2011年9月4日,09:07:29)[MSC v.1500 64位(AMD64)]

输入"copyright","credits"或"license()"以获取更多信息.

import os,csv,urllib

f0txt =()

f0txt = open("C:\ try\in0.txt")

Traceback(最近一次调用最后一次):

文件" <pyshell#4>",第1行,in

f0txt = open("C:\ try\in0.txt")

IOError:[Errno 22]参数无效:'C:\ try\in0.txt'

python python-3.x

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

Python与not之间的区别!=

我想知道这两段代码之间有什么区别:

while choice != "y" and choice != "n":
while not choice == "y" and not choice == "n":
Run Code Online (Sandbox Code Playgroud)

python boolean-expression

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

os.path.isfile() 不起作用。为什么?

我正在尝试这样做:

import os
[x for x in os.listdir('.') if os.path.isfile(x)]
[x for x in os.listdir('dirname') if os.path.isfile(x)]
[x for x in os.listdir(os.path.abspath('dirname')) if os.path.isfile(os.path.abspath(x))] 
Run Code Online (Sandbox Code Playgroud)

第一行工作:

[x for x in os.listdir('.') if os.path.isfile(x)]
Run Code Online (Sandbox Code Playgroud)

但接下来的两个:

[x for x in os.listdir('dirname') if os.path.isfile(x)]
Run Code Online (Sandbox Code Playgroud)

[x for x in os.listdir(os.path.abspath('dirname')) if os.path.isfile(os.path.abspath(x))] 
Run Code Online (Sandbox Code Playgroud)

只是输出 []

为什么?

python listdir

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

在Python中使用'__rsub__'方法的典型实例是什么?

当我遇到该__rsub__方法时,我正在自学Python 。虽然我可以在官方文档中找到有关该方法的说明

这些方法称为执行二进制算术运算(+-*///%divmod()pow()**<<>>&^|)与反射(交换)的操作数。仅当左操作数不支持相应的操作且操作数是不同类型时,才调用这些函数。例如,如果返回return ,则调用表达式以评估表达式x - y,其中y是具有__rsub__()方法的类的实例。y.__rsub__(x)x.__sub__(y)NotImplemented

我无法想象为什么该方法是必需的,以及在实际中如何使用它。

您能给我一个典型的环境,其中该方法有用吗?

python operator-overloading

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

将int拆分为字节的快速方法

如果我有一个适合32位的int,那么在python中将它分成四个8位值的最快方法是什么?我的简单时序测试表明,位掩码和移位速度比中等速度快divmod(),但我很确定我没有考虑过所有内容.

>>> timeit.timeit("x=15774114513484005952; y1, x =divmod(x, 256);y2,x = divmod(x, 256); y3, y4 = divmod(x, 256)")
0.5113952939864248
>>> timeit.timeit("x=15774114513484005952; y1=x&255; x >>= 8;y2=x&255; x>>=8; y3=x&255; y4= x>>8")
0.41230630996869877
Run Code Online (Sandbox Code Playgroud)

在你问之前:这个操作会被大量使用.我正在使用python 3.4.

python python-3.x

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

python中带变量的新行

当我"\n"在我的print函数中使用时,它在下面的代码中给出了语法错误

from itertools import combinations
a=[comb for comb in combinations(range(1,96+1),7) if sum(comb) == 42]
print (a "\n")
Run Code Online (Sandbox Code Playgroud)

有没有办法在每个组合中添加新行?

python combinations newline line-breaks python-3.x

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

MySQL 有效测试是否计数 w/ where 大于一个值

有没有办法优化以下查询?

SELECT count(*)>1000 FROM table_with_lot_of_rows WHERE condition_on_index;
Run Code Online (Sandbox Code Playgroud)

使用此查询,MySQL 首先执行count(*),然后进行比较。当只有几行满足条件时,这很快,但如果很多行满足条件,则可能需要永远。有没有办法在找到 1000 个项目后立即停止计数,而不是查看所有结果?

特别是,我对带有全文条件的 MyISAM 表感兴趣,但是对 InnoDB 和/或基本 WHERE 子句的任何答案都会有所帮助。

mysql count query-optimization where short-circuiting

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

Python3 utf-8 解码问题

以下代码在我的 Windows 机器上使用 Python3 运行良好,并打印字符“é”:

data = b"\xc3\xa9"

print(data.decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

但是,在基于 Ubuntu 的 docker 容器上运行相同的结果:

UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

是否需要安装任何东西才能启用 utf-8 解码?

python linux windows utf-8 python-3.x

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