Вы действительно не хотите вкладывать петли. Поскольку вам не важна запись dict, если она находится в наборе запросов, вы можете обновить dict с помощью элементов из набора запросов, и они будут перезаписаны. Затем вы можете отсортировать элементы dict одновременно.
d.update(qs.values_list('ip', 'type'))
for k, v in sorted(d.items()):
print(k, v)
Где d
- это диктат, а qs
- набор запросов.
Если вам все еще нужен type:
часть, распечатанная для элементов, изначально принадлежащих только к набору запросов, может сделать обновление немного по-другому.
d.update((k, 'type: '+v) for k, v in qs.values_list('ip', 'type'))
Это добавляет строку type:
к каждому значению из набора запросов, прежде чем поместить его в dict. .
Это не просто type
. Для каждого IP я хочу либо весь объект, либо строку из словаря
Что-то вроде этого, тогда?
d.update((o.ip, o) for o in qs)
Вы можете установить значение стороны пары в быть тем, что вы хотите в выражении генератора.