【发布时间】:2015-06-11 10:48:54
【问题描述】:
我正在尝试使用嵌套列表来使用字典理解。只要键是唯一的,一切正常。但是,如果存在多个键,我想将值附加到该键而不是覆盖该值。这可以使用理解吗?
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]]}
抱歉,我找不到这个问题的重复。
【问题讨论】:
标签: python list dictionary