Сопоставить элемент в списке с возможными значениями - PullRequest
0 голосов
/ 23 сентября 2018

Я получил список слов.Скажем:

words = ['a', 'b', 'c', 'd', 'a', 'g', 'h', 'v']
values = ['donkey', 'monkey', 'whale', 'dog']

Примечание: реальные списки намного длиннее

В зависимости от каждого элемента в списке words должно выводиться определенное значение.Например, a должен печатать donkey, b должен печатать whale и так далее.

values очень длинный (30 элементов).Также они написаны от руки.Они не читаются из чего-то другого.words являютсяЭто означает, что я могу выбрать словарь или что-то еще, если это лучше.Какой лучший способ справиться с этим?

Ответы [ 3 ]

0 голосов
/ 23 сентября 2018

Не знаю, как 'b' -> 'кит' в этом сценарии, но ...

In [5]: wv = dict(zip(words, values))

In [6]: wv
Out[6]: {'a': 'donkey', 'b': 'monkey', 'c': 'whale', 'd': 'dog'}

In [7]: wv['a']
Out[7]: 'donkey'
0 голосов
/ 23 сентября 2018

Вы можете использовать zip для преобразования списков в словарь.

dict(zip(words, values))

. Zip автоматически обрезает длинный список.

{'a':'donkey', 'b':'monkey', 'c':'whale', 'd':'dog'}

Затем вы можете получить доступ к значениям с помощью клавиш.: d['a']

0 голосов
/ 23 сентября 2018

вы должны сохранить его как словарь.Примерно так

lookup  =  {  'a': 'donkey', 'b':  'monkey', 'c':'wale'}

это поможет вам получить к нему гораздо лучший и быстрый доступ.

Если вам нужно a, тогда lookup['a'] даст вам результат.

Также ваш подход может быть применен, но сложность времени будет намного выше.

words = ['a', 'b', 'c', 'd', 'a', 'g', 'h', 'v']
values = ['donkey', 'monkey', 'whale', 'dog']

print(values[words.index('b')])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...