Это общий ответ для понимания словаря с помощью «else». Я столкнулся с этим сообщением, когда искал его в Google, поэтому надеюсь, что он поможет будущим гуглерам.
Так позволяет сказать, что я хочу создать словарь с условием на обоих к и против
наивный способ решить это будет выглядеть примерно так:
{k:v if (condition) else otherk:otherv for k,v in some_dictionary}
Это не работает, так как упомянутый ранее Моисеем Коледоем.
Однако, вы можете использовать следующие для каждой части:
{k if condition1 else otherK: v if condition2 else otherV for k,v in some_dictionary}
Обратите внимание, что здесь мы Условная заданию ключа и присвоение значению в. Главное, на что обратить внимание здесь, это расположение разделителя между ключами и значениями. Надеюсь это поможет.
Ниже приведен пример для получения пользовательского словаря в следующем из: для английского алфавита из букв AG будет показывать положительное значение для порядка букв верхнего регистра из букв JZ показывает отрицательное значение для порядка малогабаритных букв
Это пример для разных ключей и значений, основанных на определенном состоянии. Надеюсь, это объясняется достаточно хорошо.
>>> def less_than_H_ascii_val(x):
... return x < ord('H')-ord('A')
...
>>> {chr(k+ord('A')) if less_than_H_ascii_val(k) else chr(k+ord('a')):
... k if less_than_H_ascii_val(k) else -k
... for k in range(26)}
{'A': 0, 'C': 2, 'B': 1, 'E': 4, 'D': 3, 'G': 6, 'F': 5, 'i': -8, 'h': -7, 'k': -10, 'j': -9, 'm': -12, 'l': -11, 'o': -14, 'n': -13, 'q': -16, 'p': -15, 's': -18, 'r': -17, 'u': -20, 't': -19, 'w': -22, 'v': -21, 'y': -24, 'x': -23, 'z': -25}
Что такое ожидаемый вывод для 'new_dict'? Довольно непонятно, о чем вы просите. Вы используете тернарный оператор для пар 'k: v', который является незаконным, но вы легко можете использовать его для' k' и для 'v' в отдельности. –
@ ŁukaszRogalski Я хочу создать новый dict с помощью клавиш abc123 ', значения для этих ключей находятся в двух других dicts, которые у меня уже есть. –