Python замена и дублирование списка символов - PullRequest
1 голос
/ 09 января 2020

Я только начинаю изучать Python и хочу очистить свой код двумя вещами:

  1. Я заменяю символы в слове числами в списке, который я составил. Есть ли лучший способ сделать это с другим для или , в то время как оператор?
  2. Если символы заменяются на одно и то же число дважды в строке, мне нужно сохранить только первый. Как мне удалить дубликаты в этом случае?
word = input("Enter a word to code: ")

for ch in range (0, len(word) - 1):

    letters = [('b','f','p','v'), ('c','g','j','k','q','s','x','z'),('d','t'),('l'),('m','n'),('r')]

    for ch in word:
        if ch in letters[0]:
            word = word.replace(ch,"1");
        if ch in letters[1]:
            word = word.replace(ch,"2");
        if ch in letters[2]:
            word = word.replace(ch,"3");
        if ch in letters[3]:
            word = word.replace(ch,"4");
        if ch in letters[4]:
            word = word.replace(ch,"5");
        if ch in letters[5]:
            word = word.replace(ch,"6");

1 Ответ

2 голосов
/ 09 января 2020

Создайте карту и используйте str.join:

d = {i: n for n, l in enumerate(letters, start=1) for i in l}
''.join(str(d.get(i, i)) for i in 'apple')

Вывод:

'a114e'
...