Нужна помощь для реализации функции в Python - PullRequest
0 голосов
/ 01 мая 2020

Мне нужно сделать функцию, которая может проверять данное слово и возвращать другое слово. Например, если введено «a1», функция проверит это слово в словаре и вернет «a».

Я знаю, как его кодировать, если это просто одно входное слово на категорию, используя простое if-else, но я все еще не понимаю, если в категории более 3 слов. И я планирую иметь много данных в этом словаре. Так что простой if-else должен был бы написать много кода.

this is how the dictionary visualized

это пример ввода и вывода, который мне нужен:


Вход: a2 Выход: a
Вход: b3 Выход: b

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Если вам действительно нужно убрать одно число di git в конце (согласно вашему примеру):

words=['a1','a2','a3','a4','b1','b2','b3','c1','c2','d1']

realwords= set()   # empty set, like a list, but can only have each item once, no duplication

for w in words:
    realwords.add(w[:-1])

print(realwords)

{'c', 'a', 'b', 'd'}

Если у вас есть более сложная проблема, чем однозначные, добавьте ее к своему вопросу. Есть много способов решить такие проблемы в Python. В приведенном выше примере я использовал концепцию set, которая может быть очень мощной, чтобы избежать дублирования. Вы можете конвертировать набор обратно в список легко b=list(a)

0 голосов
/ 01 мая 2020

Если я правильно понимаю ваш вопрос, у вас есть список слов, и вы хотите заменить одно слово другим словом? Я думаю, что во многих языках программирования вы бы использовали оператор switch-case для чего-то подобного Это может быть реализовано в Python с использованием dict:

switch = {
    "a1" : "a",
    "a2" : "a",
    "a3" : "a",
    "a4" : "a",
    "b1" : "b",
    "b2" : "b",
    "b3" : "b",
    "c1" : "c",
    "c2" : "c",
    "c3" : "c",
    "d1" : "d",
    "d2" : "d"
}
test_word = "d1"
answer = switch[test_word]
print(answer) #d

Обозначение скобок [], используемое в dict, ищет в dict ключ, соответствующий значению в скобках. Возвращает соответствующее значение этого ключа в словаре. Если он не найден, он вызовет KeyError.

Если вы хотите вернуть другое значение в случае, если ключ не найден, тогда вы можете использовать .get вместо этого, например так:

switch.get(test_word, "not found")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...