Python 将字符串转换为小写,但一些特殊字符串除外
Python convert a string to lowercase except some special strings
我想将字符串转换为小写,但如果该字符串包含特殊单词之一,则应保持原样。
specialwords = ['Special1', 'Special']
假设我们的输入字符串是这样的:
Ali is really Special.
输出应该是这样的:
ali is really Special
这是我目前使用的代码。
def makeUrl(inputString):
list = {"ı": "i",
"I": "ı",
"İ": "İ",
"î": "i",
"Ç": "c",
"ç": "c",
" ": "-",
"ş": "s",
"Ş": "s",
"Ğ": "g",
"ğ": "g",
"Ü": "u",
"ü": "u",
"Ö": "o",
"ö": "o",
"!": "",
"?": "",
"'": "",
"“": "",
"”": "",
"â": "a"}
inputString = inputString.encode('utf8', 'replace')
for letter in list:
inputString = inputString.replace(letter, liste[letter])
if "Ali" in inputString:
return inputString
else:
return inputString.lower()
specialwords = ['Special1', 'Special']
string = "Ali is really Special"
toLower = lambda x: " ".join( a if a in specialwords else a.lower()
for a in x.split() )
print (toLower(string))
# ali is really Special
如果 string
中有任何标点符号,您可以使用简单的 lambda
:
轻松删除它们
from string import punctuation
p_strip = lambda x: "".join(w for w in x if w not in punctuation)
string = "Ali is really Special."
# Now `toLower` function should look something like this:
toLower = lambda x: " ".join( a if p_strip(a) in specialwords else a.lower()
for a in x.split() )
我想将字符串转换为小写,但如果该字符串包含特殊单词之一,则应保持原样。
specialwords = ['Special1', 'Special']
假设我们的输入字符串是这样的:
Ali is really Special.
输出应该是这样的:
ali is really Special
这是我目前使用的代码。
def makeUrl(inputString):
list = {"ı": "i",
"I": "ı",
"İ": "İ",
"î": "i",
"Ç": "c",
"ç": "c",
" ": "-",
"ş": "s",
"Ş": "s",
"Ğ": "g",
"ğ": "g",
"Ü": "u",
"ü": "u",
"Ö": "o",
"ö": "o",
"!": "",
"?": "",
"'": "",
"“": "",
"”": "",
"â": "a"}
inputString = inputString.encode('utf8', 'replace')
for letter in list:
inputString = inputString.replace(letter, liste[letter])
if "Ali" in inputString:
return inputString
else:
return inputString.lower()
specialwords = ['Special1', 'Special']
string = "Ali is really Special"
toLower = lambda x: " ".join( a if a in specialwords else a.lower()
for a in x.split() )
print (toLower(string))
# ali is really Special
如果 string
中有任何标点符号,您可以使用简单的 lambda
:
from string import punctuation
p_strip = lambda x: "".join(w for w in x if w not in punctuation)
string = "Ali is really Special."
# Now `toLower` function should look something like this:
toLower = lambda x: " ".join( a if p_strip(a) in specialwords else a.lower()
for a in x.split() )