PIA 删除字符
文章目录
题目
输入一个字符串 str,再输入要删除字符 c,将字符串 str 中出现的所有字符 c 删除。
输入格式:
在第一行中输入一行字符 在第二行输入待删除的字符
输出格式:
在一行中输出删除后的字符串
样例
输入样例:
在这里给出一组输入。例如:
Bee
E
输出样例:
在这里给出相应的输出。例如:
result: B
题目解析
由题可知,要删除的字符不局限于字母,而如果是字母,就要将字母的大小写都删除。
代码
a=list(input().strip())
x=input().strip()
s=[i for i in a if not(i.lower()==x or i.upper()==x)]
print('result: %s'%''.join(s))
代码解析
str=list(input().strip()
)
x=input().strip()
str.strip([chars])
用于移除字符串头尾指定的字符(默认为空格)或字符序列的函数。
如果不加strip(),那么如果在输入时在前面打了空格,那么空格就会以' '
形式存储进列表。
例如:
>>>a=" abc 123"
>>> b=list(a)
>>>b
[' ', ' ', ' ', 'a', 'b', 'c', ' ', '1', '2', '3']
ps. str.strip([chars])的类似函数
.strip() 是去除字符串左右两边的空格
.lstrip() 是去除字符串左两边的空格
.rstrip() 是去除字符串右两边的空格
s=[i for i in str if not(i.lower()==x or i.upper()==x)]
这一行运用到了python中的列表解析,是为了让程序更简洁的;
还运用到了.lower()/.upper()函数。
列表解析(list解析)
列表解析的常见语法:
[expression for
iter_val in iterable if
cond_expr]
例如:列出1~10所有数字的平方(IDLE环境)
1、普通方法:
>>> L = []
>>> for i in range(1,11):
... L.append(i**2)
>>> print L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
2、列表解析:
>>>L = [ i**2 for i in range(1,11)]
>>>print L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
所以这一行我们也可以写成:
s=[]
for i in str:
if not(i.lower()==x or i.upper()==x):
s.append(i)
.lower()/.upper()
.lower()/.upper()是用于判断字母的大小写的,它们分别是将字符串变成小写/大写的函数。
字符串里还有很多功能强大的函数,如:
.capitalize() 将字符串的第一个字母变成大写
.title() 将字符串中所有单词的第一个字母变成大写
.islower() 判断字符串内字母是不是全是大写
…
print(‘result: %s’%''.join(s)
)
这里运用的是””.join()函数,用于将列表中的字符(串)元素(如果有其他类型就会报错 )拼接,并以字符串形式输出的一种函数。
如:
>>>a=[”1”,”2”,”3”]
>>>””.join(a)
”123”
””.join()函数不仅可用于列表,也可用于元组和字典(对于字典只输出它的键)。
如:
元组:
>>> a=("1","2","3")
>>> "".join(a)
'123'
字典:
>>>a={"1":1,"2":2,"3":3}
>>> ":".join(a)
'1:2:3'