为了账号安全,请及时绑定邮箱和手机立即绑定

附加列表相对于另一个列表时,条件语句不起作用

附加列表相对于另一个列表时,条件语句不起作用

白猪掌柜的 2022-06-02 15:54:57
我正在尝试从字符串中删除某些字符。我的做法是将字符串转换为列表,遍历每个列表并将每个好的字符附加到一个新列表并返回该新列表,但由于某种原因,它没有这样做。这是输入:"4193 with words"这是输出:4193withwords换句话说,代码中唯一有效的部分是删除空格的部分。这是我的整个代码:class Solution:    def myAtoi(self, str: str) -> int:        illegal_char = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '!', '@', '#', '$', '%', '^', '&' '*', '(', ')', '=', '+', '[', ']', '{', '}', '|']        new_list = []        integer_list = list(str)        for i in range(len(integer_list)):            if integer_list[i] != any(illegal_char):                new_list.append(integer_list[i])        output = ''.join(new_list)        output = output.replace(' ', '')        return output
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

你可以做一个join列表理解。您需要的是一个会员签入列表和表单字符串,其中仅包含您需要的那些字符:

''.join([x for x in s if x not in illegal_char]).replace(' ', '')

请注意,我已将您的字符串重命名为s,因为str它是内置的。

还要补充一点,如果你可以包括空间,illegal_char你可以在最后避免replace


查看完整回答
反对 回复 2022-06-02
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

这是一种非常复杂的替换某些字符的方法。我建议你学习一些正则表达式,因为它可以帮助你很多。有一个用于 python 的正则表达式库,称为 re。


这将是我的解决方案:


import re

mytext = "4193 with words"

newtext = re.sub("\s", "", mytext)


查看完整回答
反对 回复 2022-06-02
  • 2 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信