python 机试编程题:从第一个字符串中删除第二个字符串中的所有字符

原题如下:输入2个字符串,从第一个字符串中删除第二个字符串中的所有字符

输入 'They are students' 

        'aeiou'

输出:Thy r stdnts

(如果是你,你第一时间想到的是用什么方法呢?)

 

当时使用的方法如下,因为想到字符串没有删除的方法(后面才发现使用替换的方法可以达到删除的效果),而且需要有序,所以选择转换为列表,然后操作后,再转换回来:

# 临场使用的方法如下:

s1 = 'They are students' 

s2 = 'aeiou'
L1 = s1.split()
L = []
for i in L1:
    L2 = list(i)
    for j in i:  # 注意:此次不能通过遍历L2,因为列表是可变的,后面的remove会有影响
        if j in s2:  
            L2.remove(j)
    L.append(''.join(L2))
print(' '.join(L))
 

# 后面发现可以直接使用字符串的 replace 方法,更简便。

s = s1
for i in s1:
    if i in s2:
        s = s.replace(i, '')   # 替换后,返回的是一个新字符串,保留原字符串s1不变
print(s)

# 还可以是用字符串累加的方式,也很方便

s = ''
for i in s1:
    if i not in s2:
        s += i
print(s)


 

 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值