Изменить строку в Python, используя словарь - PullRequest
1 голос
/ 08 февраля 2011

В настоящее время у меня есть словарь букв Морзе, и я хочу иметь возможность изменить строку ввода пользователя в соответствующие символы кода Морзе. Есть ли простой способ сделать это в Python?

Ответы [ 4 ]

6 голосов
/ 08 февраля 2011
morse = {"A": ".-", "B": "-...", "C": "-.-."} #etc.
text = "ABC"
output = " ".join(morse[letter] for letter in text)

Возможно, вы захотите использовать letter.upper(), если ввод также может быть в нижнем регистре.И если у вас не все символы Морзе в вашей таблице, вы можете также компенсировать это (кредиты идут в ThiefMaster за это!), Поэтому конечный результат может быть

output = " ".join(morse[letter] for letter in text.upper() if letter in morse)
2 голосов
/ 08 февраля 2011
newStr = ' '.join(morseDict[c] for c in oldStr if c in morseDict)

Это автоматически удалит все символы, которые не являются ключами в morseDict

Редактировать: теперь добавляются пробелы между "буквами". Вы хотите сопоставить ' ', например, табуляция или несколько пробелов, чтобы иметь разделитель слов.

0 голосов
/ 08 февраля 2011

Это просто:

input = 'a string'
morse_code = { ... }

print ' '.join( [morse_code[i] for i in input] )
0 голосов
/ 08 февраля 2011
morse = {
"a": ".-",
"b": "-...",
"c": "-.-.",
...
...
}

str = "Hello"

for ch in str:
    print morse[ch.lower()],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...