为了澄清问题,如果我有一个字符串:
'pac'
我想得到它的每个排列的列表,在这个例子中:
^{pr2}$就像我在Ebay上的搜索引擎中输入任何一个,它会弹出“pac”作为建议。在
“代码贝娄”是我目前所取得的成就,但它显然没有发挥应有的作用Names'是一个包含多个名称的列表,例如:['pac','greg','witch']
letters = {}
for name in names:
temp = []
letter = []
temp2 = []
for let in name:
let = let.lower()
temp.append(let)
letter.append(let)
for i in range(0, len(name)):
for j in range(1, len(name) - i):
print(i, j, end=' ')
to_add = letter[i] + temp[j]
print(to_add, temp2)
temp2.append(to_add)
letter.append(to_add)
temp = temp2
temp2 = []
letters[name] = letter
return letters
如果有内置功能,请随时与我分享,但这不是问题的核心。在
用户标准库
itertools
:它分为:
1,
itertools.combinations(['p', 'a', 'c'], i)
生成“pac”的所有子样本,样本大小为i
2,对
i=1, 2, 3
重复i
,并将得到的三个itertools.combination
对象放入一个列表中3、从#2解压列表,并使用那些作为参数来生成
itertools.chain
对象(顾名思义,它将把它的参数链在一起)。查看更多关于参数unpack在许多实际的用例中,特别是当元素的总数很大时,您实际上并不想从
itertools.chain
对象中创建一个列表。使用itertools
的目的通常是通过避免将其所有成员都放在内存中来实现内存效率。在(如果您不想
tuple
s,只需添加一个''.join
将它们恢复为字符串)相关问题 更多 >
编程相关推荐