Python字符串删除涵盖大写和小写

时间:2015-04-06 20:42:21

标签: python

尝试创建一个简单的函数,它会删除一个短语,一个字母,然后输出原始短语并删除该字母。我可以做简单的版本,但当我尝试覆盖小写和大写时似乎让我的电线交叉。 (如果我这样做的话,它可以正常工作,如果我不在aChar中)

即。如果我输入交易委员会'我提取的信是' O',我希望删除大写和小写。我是初学者,所以关于我的代码的任何一般提示也会非常感激。

这是我的剧本:

def removal(statement,aChar):
   newstring = ''
   lowercase = aChar.lower()
   uppercase = aChar.upper()
   for i in statement:
       if i not in aChar or lowercase or uppercase:
             newstring = newstring+i
   print(newstring)
removal('Board of Trade', 'O')    

6 个答案:

答案 0 :(得分:3)

def removal(statement,aChar):
   newstring = ''
   # look at each character in your statement
   for i in statement:
       # convert everything to lowercase and make sure they don't match
       if i.lower() != aChar.lower():
           newstring = newstring + i
   return newstring

答案 1 :(得分:1)

.replace()会让您的功能更具可读性。

这也是一个错误:i not in aChar or lowercase or uppercase 与你所写的相同的是(i not in aChar) or True or True ..这总是正确的。

def removal(statement,aChar):

   lowercase = aChar.lower()
   uppercase = aChar.upper()

   newstring = statement.replace(lowercase, '').replace(uppercase, '')

   print(newstring)

removal('Board of OTrade', 'O')

答案 2 :(得分:0)

更改条件以测试迭代中是否存在元素:

if i not in (aChar, lowercase, uppercase): # you really don't need aChar

答案 3 :(得分:0)

您可以做的是将大写字母O转换为小写字母O.与此类似:

def removal(statement,aChar):
   newstring = ''
   for i.lower() in statement:
       if i != aChar.lower()
         newstring += i
   print(newstring)

答案 4 :(得分:0)

这是一个简单的函数,用空字符替换给定的字符。它取代了该角色的大小写。如果你只是想盲目地替换这个角色,请使用第二个答案:

import string

def myfunc(mystr, mychar):
    return (mystr.replace(mychar.lower(), "")).replace(mychar.upper(), "")

myfunc("This is test sentence", "t")

第二个答案(使用盲目给出的字符):

def myfunc(mystr, mychar):
    return mystr.replace(mychar, "")

答案 5 :(得分:0)

可以使用str.translate()一行完成此操作:

def delchar_ci(s, ch):
    return s.translate(None, ch.lower() + ch.upper())

s = 'Board Of Trade'
print delchar_ci(s, 'o') # 'Bard f Trade'
print delchar_ci(s, 'o') == delchar_ci(s, 'O') # True