Questions tagged «itertools»

13
如何使用itertools.groupby()?
我还没有找到关于如何实际使用Python itertools.groupby()函数的可理解的解释。我想做的是这样的: 列出一个列表-在这种情况下,是对象化lxml元素的子元素 根据一些标准将其分为几组 然后,稍后分别遍历每个组。 我已经阅读了文档和示例,但是尝试将它们应用于简单的数字列表之外时遇到了麻烦。 那么,我该如何使用itertools.groupby()?我应该使用另一种技术吗?指向良好“前提”阅读的指针也将受到赞赏。
506 python  itertools 

6
Windows许可证密钥的所有排列
我需要为笔记本电脑申请Windows 8升级,为此,我需要笔记本电脑下面的Windows 7许可证密钥。 由于Microsoft无限智慧地决定创建会失效的许可证标签,并且我无法清晰地阅读许可证密钥,这意味着我无法使用自动化过程为Windows升级产品注册笔记本电脑。 通过将笔记本电脑与光线倾斜,我可以验证大部分代码,但是其中几个字母是不明确的(再次感谢Microsoft使用易于误读标签中的字符)。 我有以下(混淆的)许可证密钥, MPP6R-09RXG-2H[8B]MT-[B8]K[HN]M9-V[6G]C8R 其中方括号内的字符是不明确的,因此它是任一8或B,B或8,H或N,6或G。 制作16种组合。 使用itertools生成此许可证密钥的可能排列是否合适,还是有更好的方法? 感谢贡献者,我得到了正确的钥匙。检查密钥是否有效的一种非常方便的方法是使用Windows 7产品密钥检查器。
97 python  itertools 


19
具有唯一值的排列
itertools.permutations会根据其位置而不是其值来生成其元素被视为唯一的元素。所以基本上我想避免重复: >>> list(itertools.permutations([1, 1, 1])) [(1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1)] 之后的过滤是不可能的,因为在我的情况下,排列的数量太大。 有人知道合适的算法吗? 非常感谢你! 编辑: 我基本上想要的是以下内容: x = itertools.product((0, 1, 'x'), repeat=X) x = sorted(x, key=functools.partial(count_elements, elem='x')) 这是不可能的,因为sorted创建列表并且itertools.product的输出太大。 抱歉,我应该已经描述了实际问题。



7
压缩的Python生成器,第二个生成器更短:如何检索静默消耗的元素
我想解析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(10) gen2 = my_gen(8) list(zip(gen1, gen2)) # Last tuple is (7, 7) print(next(gen1)) # printed value is "9" => 8 is missing gen1 = my_gen(8) gen2 = my_gen(10) …

1
如何从Python生成的动态循环中删除空值?
我有一个这样的数据框: ORDER_NO 2401 2504 2600 2020020 2019-12-04 2019-12-10 2019-12-12 2020024 2019-12-25 NaN 2019-12-20 2020034 NaN NaN 2019-12-20 2020020 2019-12-12 2019-12-15 2019-12-18 我从上面的数据框架创建XML。我想删除填充到XML中的空值。我的代码应从XML中删除该特定的列和行值。 我的密码 header = """<ORD>{}</ORD>""" body =""" <osi:ORDSTSINF types:STSCDE="{}"> <DTM>{}</DTM>""" cols = df.columns for row in df.itertuples(): with open(f'{row[1]}.xml', 'w') as f: f.write(header.format(row[1])) for c, r in zip(row[2:], cols[1:]): …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.