我想尝试使用permutations
模块中的itertools
函数。但是每次尝试实现它时,我都会不断收到以下错误:
代码:
from itertools import permutations
txt=permutations('SKIN')
print(txt)
输出:
<itertools.permutations object at 0x7fee48665950>
我尝试在命令提示符下使用命令pip install itertools
,但仍然收到错误消息:
ERROR: Could not find a version that satisfies the requirement itertools (from versions: none)
ERROR: No matching distribution found for itertools
如何安装软件包?
答案 0 :(得分:2)
itertools是一个内置模块,无需安装:
Help on module itertools:
NAME
itertools - Functional tools for creating and using iterators.
FILE
/usr/lib64/python2.7/lib-dynload/itertoolsmodu
permutations(<iterable>)
返回一个生成器,该生成器生成可迭代元素的连续r长度排列:
>>> type(txt)
<type 'itertools.permutations'>
>>> dir(txt)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'next']
所需排列列表:
list_perms = [ "".join(i) for i in permutations("SKIN")]
# ['SKIN', 'SKNI', 'SIKN', 'SINK', 'SNKI', 'SNIK', 'KSIN', 'KSNI', 'KISN', 'KINS', 'KNSI', 'KNIS', 'ISKN', 'ISNK', 'IKSN', 'IKNS', 'INSK', 'INKS', 'NSKI', 'NSIK', 'NKSI', 'NKIS', 'NISK', 'NIKS']
答案 1 :(得分:1)
permutations()
返回一个对象,将其转换为list即可完成工作。
from itertools import permutations
txt=list(permutations('SKIN'))
t = [''.join(i) for i in txt]
print(t)
答案 2 :(得分:0)
它像怀疑的那样工作。 permutations
是可以迭代的生成器。
from itertools import permutations
txt=permutations('SKIN')
print(txt)
for single_permutation in txt:
print(single_permutation)
答案 3 :(得分:-2)
显然,问题在于您尚未安装itertools模块。
尝试此命令:
pip install more-itertools
查看此链接。 https://pypi.org/project/more-itertools/
编辑:
所以我了解到itertools是一个内置包,我想您要做的就是简单地通过list()方法将排列转换为列表。
txt = list(permutations('SKIN'))
我希望足够。
我了解到itertools是内置软件包,因此上面的内容可能没有那么有用。
所以