2012-05-08 25 views
-2

我有一个文本文件中的单词列表,我想对每个单词执行leet。例如,如果我有“你好”这个词,这将变成'5E11O'。换句话说,程序应该能够自动替换单词中的每个字母。如何用Python执行leet?

请问这可能吗?谢谢

+0

我敢肯定,实际上说的“Sello的”,而不是“HELLO”,J0。 – detly

+1

是的,这是可能的。你已经知道python了吗? – Teak

+0

我不知道那么多有关python,但不幸的是,因为我仍然是一个初学者,但我愿意学习:) – Matthew

回答

3

它完全取决于你如何定义leet。

如果是简单的1:1翻译每个字符,如H->5, e->E, l->1, l->1, o->0为了翻译Hello5E11O这并不难。使用string.maketrans将此字符定义为字符翻译。

更困难的是如果您希望支持更完整的子集orthographies,如hacker-lingo - >l33tsp33k,这也涉及缩短字符数。

有各种各样的leet源代码的努力。尝试一个。看看鞋子是否合适。我不认为leet已经通过ISO标准化了......; - }

2

下面是一系列一系列一对一替换系列的方法。请注意在字母转换之前如何应用“整个单词”转换。

replacements = (('hacker','haxor'), ('elite','eleet'), ('a','4'), ('e','3'), 
       ('l','1'), ('o','0'), ('t','+')) 
my_string = "I am an elite hacker." 
new_string = my_string 
for old, new in replacements: 
    new_string = new_string.replace(old, new) 

print (new_string) 

给出:

I 4m 4n 3133+ h4x0r. 

一个有趣的扩展是允许一些替代多种选择。例如,字符l可以呈现为数字1或管道符号|

0

我猜easies是使字符集,并把它转换

from utilitybelt import change_charset 

origspace = "abcdefghijklmnopqrstuvwxyz" 
keyspace = "abcd3fgh1jklmnopqr57uvwxyz" 

print(change_charset("leetspeak",origspace, keyspace)) 

#l3375p3ak