Size: a a a

Django [ru] #STAY HOME

2018 December 16

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
>>> from test.support import import_fresh_module
>>> OrderedDict = import_fresh_module('collections', blocked=['_collections']).OrderedDict
>>> a = OrderedDict({'a': 'A', 'b': 'B', 'c': 'C'})
>>> a._OrderedDict__map['b'].next.key
'c'
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
чисто ради фана)
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
OrderedDict не импортируется как обычно из-за того, что там реализация на С и в ней не получится это сделать (вроде), а вот в питонячьей реализации получится
источник

IF

Invisible Fox in Django [ru] #STAY HOME
А что за test
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
это нужно, чтобы импортировать реализацию OrderedDict на питоне
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
а не на С
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
код выше - это просто ради фана
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
на всякий случай, уточню
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
то есть не нужно его использовать где-либо, это просто поиграться)
источник

IF

Invisible Fox in Django [ru] #STAY HOME
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
то есть в питоне есть обычный dict, а есть OrderedDict, где есть порядок и где было бы разумно иметь такой метод (получить следующий ключ)
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
но такого метода нет
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
у OrderedDict есть реализация на Python'е и на С
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
и вот в первом случае можно сделать нечто подобное через
a._OrderedDict__map['b'].next.key
источник

p

parikLS in Django [ru] #STAY HOME
Sergei Mikhailov
Ну он же непорядочный, у тебя энивей следующий ключ разным будет при каждом проходе
Это почему он разным будет?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
если без OrderedDict'а, то как-то так можно dict(sorted(my_dict.items())), то есть вручную сортировать
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Performing list(d) on a dictionary returns a list of all the keys used in the dictionary, in insertion order (if you want it sorted, just use sorted(d) instead).
источник

IF

Invisible Fox in Django [ru] #STAY HOME
Я сейчас протестил, всегда в одинаковом. Не изначальном, но на то это и словарь
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
это в Python 3.7 так
источник