我有这段代码:
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)
我希望能够将关键字放在字母表字符串的开头,以创建新字符串而不重复关键字中的字母。我这样做有些问题。我需要关键字适用于所有字母,因为它将是我程序中的用户输入。有什么建议吗?
答案 0 :(得分:1)
两件事:
import string
并使用string.ascii_uppercase
;和for
循环来处理密钥中的字符。说明后者:
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建议的列表理解