С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 10.11.2019
Сообщений: 33

Сортировка словаря

23.01.2020, 11:04. Показов 1872. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
добрый день. Помогите отсортировать список.
Python
1
2
3
4
5
6
def main():
    spisok = {'a': {1, 2, 3}, 'b': {3, 4, 5}, 'c': {5, 6}, }
    korteg = sorted(spisok.items(), key=lambda kv: kv[1])
    print(korteg)
if __name__ == '__main__':
    main()
знаю словарь же нельзя отсортировать он не упорядоченный,
для этого его надо переделать либо в кортеж либо в список.
как мне это сделать попарно?
ну например (3,5),(3,6),(5,1),(5,2),(5,3) чтоб так потом вывел?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2020, 11:04
Ответы с готовыми решениями:

Сортировка словаря
Функция сортировки по алфавиту: def alphabet_sort(to_sort: dict) -> dict: # Сортировка в алфавитном порядке производителей ...

Сортировка Словаря
Доброго Времени Суток, подскажите, как бы мне отсортировать такой словарь в порядке УБЫВАНИЙ его значений? d={'a':5,'b':6,'c':8}

Сортировка словаря
Всем привет. Есть словарь: babynames = { 'София, Софья': { 2012: ', 2010: ', 2005: ',

14
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
23.01.2020, 11:30
Android36, в питон 3.7 словари сохраняют порядок.
0
2 / 2 / 0
Регистрация: 10.11.2019
Сообщений: 33
23.01.2020, 12:06  [ТС]
может кто подскажет как мне получить значения из списка. потом из значений получить множества и сравнить их?
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
23.01.2020, 12:16
Цитата Сообщение от Android36 Посмотреть сообщение
для этого его надо переделать либо в кортеж либо в список.
или collections.OrderedDict
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
23.01.2020, 13:08
Android36,

Если я вас правтльно понял, то:

Python
1
2
3
4
5
6
7
8
9
10
11
12
# -*- coding: utf-8 -*-
 
 
my_dict = {
    'a': {1, 2, 3},
    'c': {7, 8, 9}, 
    'b': {4, 5, 6}
}
 
print(tuple(((k, sum(v)) for k, v in my_dict.items())))
 
# (('a', 6), ('c', 24), ('b', 15))
1
2 / 2 / 0
Регистрация: 10.11.2019
Сообщений: 33
23.01.2020, 13:33  [ТС]
нет не сложить значения а из значений(множеств) сравнить их пересечения в общем...

Добавлено через 6 минут
Подскажет кто как извлечь значения из словаря.? А потом эти значения сравнить.
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
23.01.2020, 13:39
Цитата Сообщение от Android36 Посмотреть сообщение
как извлечь значения из словаря
Python
1
2
3
>>> spisok = {'a': {1, 2, 3}, 'b': {3, 4, 5}, 'c': {5, 6}, }
>>> spisok['a']
set([1, 2, 3])
1
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
23.01.2020, 16:09
Android36,

Так?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# -*- coding: utf-8 -*-
 
 
my_dict = {
    'a': {1, 2, 3},
    'b': {3, 4, 5},
    'c': {1, 4, 5}, 
}
 
 
def example(my_dict: dict):
    items = tuple(my_dict.items())
    for i, (k, v) in enumerate(items):
        for _k, _v in items[i + 1:]:
            if v & _v: yield (f"{k}{_k}", v & _v)
 
 
print(tuple(example(my_dict)))
# (('ab', {3}), ('ac', {1}), ('bc', {4, 5}))
1
2 / 2 / 0
Регистрация: 10.11.2019
Сообщений: 33
23.01.2020, 16:38  [ТС]
Спасибо. Вы отсортировали по ключу а надо по значению...
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
23.01.2020, 16:50
Android36, я ничего не сортировал в python 3.7.x и выше словари упорядочены. Мне кажется вы не можете нормально сформулировать задачу. Просто скажите что имеется на входе, и что должно получится. Желательно с примерами.
0
19 / 14 / 6
Регистрация: 21.01.2020
Сообщений: 49
23.01.2020, 17:07
Python
1
2
3
4
5
a = {'b': {4, 2, 3}, 'a': {3, 4, 5}, 'c': {5, 6}}
dict_in = {}
dict_in.update(sorted(a.items(), key=lambda kv: kv[0]))
dict_in.update(sorted(a.items(), key=lambda kv: kv[1]))
print(dict_in)
По ключу и по значению. Чтобы только по значению, нужно убрать первую сортировку (kv[0])
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
23.01.2020, 17:18
А зачем сортировать словарь? Просто интересно...
1
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
23.01.2020, 18:34
https://www.cyberforum.ru/post14194408.html
0
2 / 2 / 0
Регистрация: 10.11.2019
Сообщений: 33
23.01.2020, 19:59  [ТС]
просто у меня есть словарь
slovar = {'a': {1, 2, 3}, 'b': {3, 4, 5}, 'c': {5, 6}, }
нужно его значения сравнить как множества и вывести отдельно без ключей.
0
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
23.01.2020, 20:04
Вместо dict.keys() используйте dict.values() - так вы получите коллекцию значений ключей.
Затем сортируйте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2020, 20:04
Помогаю со студенческими работами здесь

Сортировка словаря
database = { "Группа1":, , ], "Группа2":, ] } def cout2(groupname): for key in...

Сортировка словаря
Функция которая возвращает словарь. Но бывает что возвращает его не в том порядке в котором задавался. def multiply(vector, num): ...

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

Сортировка словаря
Как отсортировать словарь по произведению ключа и значения? INPUT: 30:8 50:12 40:14 20:10 OUTPUT: 30:8 20:10 40:14

Сортировка словаря
##Дан словарь. Помогите остортировать его по значению Номер Dictionary = {'№':,'1':,'2':,'3':} print...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru