Изменить символ в подсписке - PullRequest
0 голосов
/ 16 марта 2019

Я уже знаю, что это действительно тупой вопрос. Я попытался найти ответ, но едва знал, что спросить. (извините, если название немного расплывчато). Но вот и я. У меня есть список слов. Я хочу избавиться от плохих персонажей в этом списке.

List = ["I?", "Can", "!Not", "Do.", "It"]
BadChars = ["?", "!", "."]

for word in List:
    for char in word:
        if char in BadChars:
            char = ""

print(List)

Опять же, я знаю, что это очень просто, но я просто не могу понять это. Прости меня.

РЕДАКТИРОВАТЬ: Кстати, это не дает мне ошибку. Он просто возвращает список нетронутым.

Ответы [ 3 ]

1 голос
/ 16 марта 2019

Вы можете использовать выражение генератора, которое перебирает каждый символ в строке и сохраняет символы, которых нет в BadChars:

[''.join(c for c in s if c not in BadChars) for s in List]

Возвращает:

['I', 'Can', 'Not', 'Do', 'It']
0 голосов
/ 16 марта 2019
List = ["I?", "Can", "!Not", "Do.", "It"]
l=[]
BadChars = ["?", "!", "."]
for i in List:
    for j in BadChars:
        if j in i:
            i=i.strip(j)
    l.append(i)


print(l)

Просто используйте метод полосы, чтобы удалить BadChars из списка

0 голосов
/ 16 марта 2019

Вы можете использовать метод replace, для каждого символа для каждого слова:

List = ["I?", "Can", "!Not", "Do.", "It"]
BadChars = ["?", "!", "."]

for i in range(len(List)):
  for char in BadChars:
    List[i] = List[i].replace(char, "")

print(List) # ==> ['I', 'Can', 'Not', 'Do', 'It']

Также можно использовать регулярное выражение:

import re

List = ["I?", "Can", "!Not", "Do.", "It"]
BadChars = ["?", "!", "."]
rgx = '[%s]'%(''.join(BadChars))

List = [re.sub(rgx, "", word) for word in List]

print(List) # ==> ['I', 'Can', 'Not', 'Do', 'It']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...