【发布时间】:2015-05-22 22:54:07
【问题描述】:
我编写了一个简单的函数,可以将单词中的字母转换为对应的“leet”数字。
def Leet(word):
letters = list(word.lower())
for n, letter, in enumerate(letters):
if letter == 'o':
letters[n]= '0'
elif letter == 'i':
letters[n]= '1'
elif letter == 'z':
letters[n]= '2'
elif letter == 'e':
letters[n]= '3'
elif letter == 'a':
letters[n]= '4'
elif letter == 's':
letters[n]= '5'
elif letter == 'g':
letters[n]= '6'
elif letter == 't':
letters[n]= '7'
elif letter == 'b':
letters[n]= '8'
return ''.join(letters)
所以当我输入'zit' 时,程序将返回'217'。
我的问题是,如何更改它以提供所有可能的排列('217'、'2it'、'z1t'、'zi7'、'21t' 等)?我已经阅读了有关 itertools 的信息,但对于如何将其应用于我的函数感到困惑。
【问题讨论】:
-
请注意,字典
{'o': '0', ...}会使这很多更整洁。
标签: python permutation itertools cartesian-product