Форум сайта python.su
0
Вот такой словарь p1. Не очень понимаю как работает sorted(i)
, все значения и ключи меняются местами.
расскажите пошагово, если можете. спасибо.
[18]: p1 = {('SW1', 'Eth0/1'): ('R1', 'Eth0/0'), ('SW1', 'Eth0/2'): ('R2', 'Eth0/0'), ('SW1', 'Eth0/3'): ('R3', 'Eth0/0')} dict(i for i in p1.items()) Out[19]: {('SW1', 'Eth0/1'): ('R1', 'Eth0/0'), ('SW1', 'Eth0/2'): ('R2', 'Eth0/0'), ('SW1', 'Eth0/3'): ('R3', 'Eth0/0')} dict(sorted(i) for i in p1.items()) Out[20]: {('R1', 'Eth0/0'): ('SW1', 'Eth0/1'), ('R2', 'Eth0/0'): ('SW1', 'Eth0/2'), ('R3', 'Eth0/0'): ('SW1', 'Eth0/3')}
('SW1', 'Eth0/1'), ('SW1', 'Eth0/2'), ('SW1', 'Eth0/3')
Отредактировано timofmax (Июль 10, 2017 10:05:36)
Офлайн
568
timofmaxСловарь не поддерживает сортировку.
Вот такой словарь p1.
Офлайн
0
FishHookда, но код рабочий.
Офлайн
857
timofmaxА что ты делаешь, тоже не очень понятно.
Не очень понимаю как работает sorted(i)
timofmax
получается i принимает значения кортежей.
но у кортежей же нет метода sorted()
>>> sorted((1, 2)) [1, 2] >>>
>>> {[1, 2]: 3} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list' >>>
>>> dict([[(1, 2), (3, 4)], [(5, 6), (7, 8)]]) {(1, 2): (3, 4), (5, 6): (7, 8)} >>>
Отредактировано py.user.next (Июль 10, 2017 14:11:03)
Офлайн
1
По какому признаку ты хочешь сортировать данные?
Функция sorted() принимает необязательный параметр key с функцией, которая будет возвращать как бы цену элемента. Например отсортировать массив строк по длинне строки будет sorted(strings_list, key=len)
Офлайн