Я не знаю, в каком порядке вы хотите отсортировать словарь, но я постараюсь объяснить все:
Когда вы запускаете english_spanish.items()
, вы получаете список кортежей.
[(key1, value1), (key2, value2) ... ]
Метод key lambda
in sorted
указывает, по какому элементу кортежей вы хотите отсортировать. Если вы установите lambda x: x[0]
, это означает, что вы сортируете, используя первое значение кортежей (key1, value1)
в качестве ключа сортировки (в основном key1
, key2
и т. Д.). Если вы используете lambda x: x[1]
, вы вместо этого используете второе значение кортежей в качестве ключа сортировки (в основном value1
, value2
и т. Д.) Python doc .
Если вы хотите, чтобы ваш список кортежей имел значения [(value1, key1), ...]
вместо [(key1, value1), ...]
, вы можете сделать что-то вроде:
sort = sorted([v[::-1] for v in english_spanish.items()], key=lambda x: x[0])
Но я думаю, что лучше сортировать, используя параметр ключауказать, по какому значению кортежа вы хотите отсортировать, а затем изменить порядок непосредственно для вашего отпечатка
english_spanish = {"hi": "hola", "thanks": "gracias", "yes": "si", "no": "no"}
sort = sorted(english_spanish.items(), key=lambda x: x[1])
sort = [' '.join(tups[::-1]) for tups in sort]
for tuple in sort:
print(tuple)