Я пытаюсь использовать понимание словаря с помощью вложенного списка. Пока ключи уникальны, все работает нормально. Однако, если есть кратные ключевые данные, я хотел бы добавить значения к этому ключу, а не переписывать значение. Возможно ли это, используя понимание?Учет словаря с вложенным списком, предотвращение перезаписи
seq1 = [[1, [1,2,3,4]], [2, [5,6,7]]]
seq2 = [[1, [1,2,3,4]], [1, [5,6,7]]]
print {key: [val] for key, val in seq1} # Or dict(seq1)
>>> {1: [[1, 2, 3, 4]], 2: [[5, 6, 7]]}
print {key: [val] for key, val in seq2}
>>> {1: [[5, 6, 7]]} # First value is overwritten
# Desired output:
def index_reads(reads):
result = {}
for i in reads:
d = dict([i])
for key, val in d.iteritems():
if key in result:
result[key].append(val)
else:
result[key] = [val]
return result
print index_reads(seq1)
>>> {1: [[1, 2, 3, 4]], 2: [[5, 6, 7]]}
print index_reads(seq2)
>>> {1: [[1, 2, 3, 4], [5, 6, 7]]}
Извините, я не мог найти повторение этого вопроса.
или использовать 'defaultdict' –
@KarolyHorvath Да, на самом деле;) – Kasramvd
Спасибо Я буду смотреть, но вывод немного отличается от ожидаемого. Сейчас я отредактирую, извините. – kezzos