14得票4回答
如何使用Python的itertools.groupby()方法将一个字符串列表按照它们的第一个字符分组?

我有一个类似于这个列表的字符串列表:tags = ('apples', 'apricots', 'oranges', 'pears', 'peaches') 我该如何使用itertools.groupby(),按每个字符串的第一个字符对此列表进行分组?我应该如何提供itertools.grou...

8得票1回答
使用itertools创建numpy数组

我可以使用itertools的各种函数来创建numpy数组。我可以很容易地提前计算出乘积、组合、排列等元素的数量,因此分配空间不应该是一个问题。 例如: coords = [[1,2,3],[4,5,6]] iterable = itertools.product(*coords) sha...

35得票6回答
Python的itertools.repeat的目的是什么?

对于我能想到的Python itertools.repeat() 类的每个用途,我都可以想到另一个同样(可能更)可接受的解决方案来实现相同的效果。例如:>>> [i for i in itertools.repeat('example', 5)] ['example', 'e...

28得票5回答
如何从一个包含不同长度列表的字典创建一个字典列表

我希望创建一个包含每个列表相同索引元素的字典列表。 我有这个字典: d = {'name': ['bob', 'john', 'harry', 'mary'], 'age': [13, 19, 23], 'height': [164, 188], 'jo...

9得票3回答
所有的 +-r, +-s 的排列组合

给定两个数字r和s,我想要得到一个列表,其中包含所有n +-r和m +-s的排列组合。例如(当r=3.14和s=2.71时), n = 1 m = 1 out = [ (+r, +s), (+r, -s), (-r, +s), (-r, -s), (+s, +r), (+s...

16得票2回答
itertools是否线程安全?

例如,如果我使用chain创建一个迭代器,我能在多个线程上调用它吗?请注意,依赖于GIL的线程安全是可以接受的,但不是首选方法。 (请注意,这与此问题有所不同,该问题涉及由C编写的生成器而不是迭代器)。

10得票2回答
如何存储itertools.chain并多次使用它?

我希望使用 itertools.chain 来高效地连接列表(记忆化),但我需要能够多次读取(或使用 map 等方法)结果。以下是一个例子,说明了这个问题: import itertools a = itertools.chain([1, 2], [3, 4]) print list(a) ...

15得票3回答
如何解压迭代器?

给定一个由 xys 组成的键值对列表,Python 分离出两个列表的惯用语是:xs, ys = zip(*xys) 如果xys是一个迭代器,我如何将其解压为两个迭代器,而不将所有内容存储在内存中?

8得票3回答
在Numpy中创建笛卡尔积时出现了MemoryError错误。

我有3个numpy数组,需要在它们之间形成笛卡尔积。数组的维度不固定,因此可以采用不同的值,例如A=(10000, 50),B=(40, 50),C=(10000,50)。 接下来,我进行了一些处理(如a+b-c)。下面是我用于计算积的函数。 def cartesian_2d(arrays...

9得票3回答
itertools.product是否惰性地评估其参数?

以下代码在 Python 3.6 中不会输出任何内容。 from itertools import product, count for f in product(count(), [1,2]): print(f) 相反,它只是停在那里并烧掉CPU。问题似乎是如果produc...