itertools相关内容
我正在尝试编写一个模块,以使用itertools.product组合数量可变的列表。 我能得到的最接近的是: import itertools lists = [["item1","item2"],["A","b","C"], ["etc..."]] searchterms = list(itertools.product(lists)) print searchterms 这不起
..
我正在尝试执行以下代码,以将列表DATA_SET_N保存在末尾。 import re data_set_N=[] for i_1 in list(range(10))+list("+-"): for i_2 in list(range(10))+list("+-*/")+["=="]: for i_3 in list(range(10))+list("+-*/
..
我正在尝试使用迭代器来迭代数学运算符。 通常使用array[1, 2, 3],使用combinations可以得到结果: 1 1,2 1,3 2,3 1,2,3 等 我要在[1, 2, 3]的array上使用它,其方式如下: 1+2+3 1+2-3 1+2/3 1+2*3 1-2+3 1-2-3 1-2/3 1-2*3 ... 出现并给出方程的结果。 我该如何着手做
..
Python(2.7.9)中的itertools.count计数器对于线程安全计数非常方便。我如何才能获得计数器的当前值? 每次调用next(): 时,计数器都会递增并返回最后一个值 import itertools x = itertools.count() print x.next() # 0 print x.next() # 1 print x.next() # 2 到目
..
我想用zip解析两个(可能)不同长度的生成器: for el1, el2 in zip(gen1, gen2): print(el1, el2) 但是,如果gen2的元素较少,则gen1中的一个额外元素将被“消耗”。 例如 def my_gen(n:int): for i in range(n): yield i gen1 = my_gen(
..
我有一个包含五个属性的列表,每个属性有五个不同的值。我想生成它们的笛卡尔乘积,并过滤所有唯一的排列。 一些背景: 我需要它们作为我的输入值来解决逻辑难题。在那里我对照它们检查规则以找到正确的解决方案。 from itertools import product # input names = ['Dana', 'Ingo', 'Jessica', 'Sören', 'Valer
..
我想使用迭代器从字母表中的每个字母获得所有可能的3个字母排列。返回空白: import itertools def permutations(ABCDEFGHIJKLMNOPQRSTUVWXYZ, r=3): pool = tuple(iterable) n = len(pool) r = n if r is None else r for indices
..
我有一些代码可以为列表字典生成所有组合 import itertools import collections def gen_combinations(d): keys, values = d.keys(), d.values() combinations = itertools.product(*values) for c in combinations:
..
我正在尝试生成数字列表的所有n项组合,同时保持数字顺序。例如,如果列表 [1,2,3,4] 长度为3的有序组合为: [1,2,3] [2,3,4] [1,2,4] [1,3,4] 为了清楚起见,我必须保持数字顺序,因此[1,4,2]不是理想的结果。 有没有函数可以做到这一点,或者有没有快速算法可以做到这一点?实际的清单是111个,我会选择100个项目。谢谢。 推荐答
..
下面的简单代码给出了长度为3的200个元素的可能组合。 from itertools import combinations comb = combinations( range(200), 3 ) 我想以随机顺序获取组合,以便挑选前N个组合。但是,如果我将comb转换为列表并按如下方式对其进行置乱,则可能会出现内存错误,因为该列表可能包含太多元素: comb = list(com
..
我知道我可以使用itertools.permutation获取大小为r的所有排列。 但是,对于itertools.permutation([1,2,3,4],3),它将返回(1,2,3)和(1,3,2)。 我要过滤这些重复项(即获取组合) 有没有一种简单的方法可以获得(所有长度的)所有排列? 如何将itertools.permutation()结果转换为常规列表? 推
..
我有一些列表,我想快速浏览一下。问题是我对一次循环浏览一个元素不感兴趣,但是我想一次循环浏览n个元素。 例如,如果我的列表是l = ["a", "b", "c", "d"],那么我需要以下输出: >>> from itertools import cycle >>> gen = cycle(l) >>> next(gen, 4) # I know this doesn't work -
..
在滑动对中迭代列表的最 Pythonic 最有效的方法是什么?这是一个相关的例子: >>>l['a', 'b', 'c', 'd', 'e', 'f', 'g']>>>for x, y in itertools.izip(l, l[1::2]): print x, y...一个b dc f 这是成对的迭代,但是我们如何才能在滑动对上进行迭代呢?含义迭代对: a bb ccd德等等. 这是对
..
我有一个带有数字的列表:数字 = [1, 2, 3, 4]. 我想要一个列表,他们像这样重复 n 次(对于 n = 3): [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]. 问题是我只想为此使用 itertools,因为我的性能非常有限. 我尝试使用这个表达式: list(itertools.chain.from_iterable(itert
..
我使用 itertools 生成了一个组合列表,我得到的结果如下所示: nums = [-5,5,4,-3,0,0,4,-2]x = [x for x in set(itertools.combinations(nums, 4)) if sum(x)==target]>>>x = [(-5, 5, 0, 4), (-5, 5, 4, 0), (5, 4, -3, -2), (5, -3, 4,
..
假设我有一个如下所示的列表: [(datetime.datetime(2013, 8, 8, 1, 20, 15), 2060), (datetime.datetime(2013, 8, 9, 1, 6, 14), 2055), (datetime.datetime(2013, 8, 9, 1, 21, 1), 2050), (datetime.datetime(2013, 8, 10, 1,
..
我有一个 256x256x256 Numpy 数组,其中每个元素都是一个矩阵.我需要对这些矩阵中的每一个进行一些计算,并且我想使用 multiprocessing 模块来加快速度. 这些计算的结果必须像原来的一样存储在一个256x256x256数组中,这样矩阵在元素[i,j,k]处的结果原数组中的元素必须放在新数组的[i,j,k]元素中. 为此,我想创建一个列表,可以用伪方式编写为 [
..
为了更好地了解 itertools groupby 的感觉,所以我按数字对元组列表进行了分组,并尝试获取结果组的列表.但是,当我将 groupby 的结果转换为列表时,我得到了一个奇怪的结果:除了最后一组之外,所有的都是空的.这是为什么?我认为将迭代器转换为列表效率会降低,但永远不会改变行为.我猜列表是空的,因为遍历了内部迭代器,但是什么时候/在哪里发生? 导入 itertoolsl=list(
..
我在互联网上找不到任何有效的例子,我可以看到它们之间的区别以及为什么要选择一个而不是另一个. 解决方案 第一个接受 0 个或多个参数,每个参数是一个可迭代对象,第二个接受一个预期生成可迭代对象的参数: from itertools 导入链链(列表 1,列表 2,列表 3)可迭代 = [list1,list2,list3]chain.from_iterable(iterables) 但
..
我知道类似的问题已经在 Stack Overflow 上被问过很多次了,但我需要从列表中删除重复的元组,但不仅仅是它们的元素匹配,它们的元素必须按相同的顺序排列.换句话说,(4,3,5) 和 (3,4,5) 都将出现在输出中,而如果两者都有 (3,3,5) 和 (3,3,5),只有一个会在输出中. 具体来说,我的代码是: 导入 itertoolsx = [1,1,1,2,2,2,3,3,3
..