Более питонический способ сделать следующее? В этом примере я пытаюсь создать комментарии (a dict), чтобы быть парами ключ-значение, где ключ - это немодифицированная версия, а значение - это возвращаемое значение из функции, в которой ключ был передан как arg.Понимание списка, но для словарей?
def func(word):
return word[-1:-6:-1].upper()
subs = {
'ALLOWED': ['one', 'two'],
'DISALLOWED': ['three', 'four']
}
comments = {}
for sub in subs['ALLOWED']:
# reverse and uppercase
comments[sub] = func(sub)
print(comments)
У кого-нибудь есть рекомендация? Не совсем важно, чтобы это было сделано, но мне нравится изучать идиомы python и способы сделать мой код более питоническим. Благодаря!
В качестве альтернативы, избегая понимания для встроенного -ins: 'dict (zip (subs ['ALLOWED'], map (func, subs ['ALLOWED'])))' Нет, не более Pythonic, просто вариант. Думаю, я предпочел бы понимание в реальной жизни, поэтому это не ответ. :-) – ShadowRanger
@ ShadowRanger не плохо. Хотя это не будет иметь большого значения для этого конкретного случая использования, я думаю, что ваша версия будет работать лучше, чем моя (хотя я еще не тестировал). Хотя, как вы сказали, конечно, не более pythonic;) – elethan
Яр. Мое главное возражение против моего «решения» заключается в том, что он нарушает СУХОЙ (он дважды смотрит «ДОПУСКАЕТ»); для небольших входов, ваш, безусловно, победит, мой может быть тик быстрее для огромных ресурсов, но это, вероятно, не имеет значения. – ShadowRanger