Python字符串替换

时间:2014-01-24 19:38:00

标签: python encryption cryptography

我有这段代码:

    ALPHABET1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    key = "TES"
    ALPHABET2 = key + ALPHABET1
    count_result = ALPHABET2.count("T")
    if (count_result > 1):
    ALPHABET3 = ALPHABET1.replace("T","")
    ALPHABET2 = key + ALPHABET3         
    print(ALPHABET2)

我希望能够将关键字放在字母表字符串的开头,以创建新字符串而不重复关键字中的字母。我这样做有些问题。我需要关键字适用于所有字母,因为它将是我程序中的用户输入。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

两件事:

  1. 您不需要自己制作字母,import string并使用string.ascii_uppercase;和
  2. 您可以使用for循环来处理密钥中的字符。
  3. 说明后者:

    for c in key:
        alphabet = alphabet.replace(c, "")
    

    更好的是,list是可变的,所以你可以这样做:

    alpha = [c for c in string.ascii_uppercase if c not in key]
    alpha.extend(set(key))
    

答案 1 :(得分:0)

使用正则表达式轻松而干净地执行此操作

import re

ALPHABET1   = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
key         = "TES"
newalphabet = key.upper() + re.sub(r'%s'%'|'.join(key.upper()), '', ALPHABET1)

或者像@jonrsharpe建议的列表理解