Условный оператор не работает при добавлении списка относительно другого - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь удалить определенные символы из строки.Мой способ сделать это - превратить строку в список, перебрать каждый список, добавить каждый хороший символ в новый список и вернуть этот новый список, но по какой-то причине этого не происходит.Это ввод:

"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 ]

2 голосов
/ 21 сентября 2019

Вы можете сделать join в списке-понимании.Что вам нужно, это проверка членства в списке и строке формы только с теми символами, которые вам нужны:

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

Обратите внимание, что я переименовал вашу строку в s, потому что str является встроенным.

Также, чтобы добавить, если вы можете включить пробел как illegal_char, вы можете избежать replace в конце.

1 голос
/ 21 сентября 2019

Хм, это очень сложный способ замены некоторых персонажей.Я предлагаю вам выучить некоторые регулярные выражения, так как это может помочь вам много.Существует библиотека регулярных выражений для python, которая называется re.

Это мое решение:

import re
mytext = "4193 with words"
newtext = re.sub("\s", "", mytext)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...