擅长:python、mysql、java
<p><code>defaultdict</code>对于这类问题很有帮助,它允许您附加到字典条目,如果某个条目还不存在,它将追加到一个空列表并将其放在那里,而不是像往常一样抛出异常。下面是我如何使用它来处理您的数据:</p>
<pre><code>from collections import defaultdict
d=defaultdict(list)
with open("input.txt") as data:
for line in data:
line = line.strip().split()
namelist = d[line[0]]
try:
idx = [x[0] for x in namelist].index(line[1])
except:
idx = -1
if len(namelist) and idx >= 0:
namelist[idx][1].append(line[2])
namelist[idx][2].append(line[4])
else:
namelist.append([line[1], [line[2]], [line[4]], line[3]])
print d
>>> defaultdict(<type 'list'>,
{'Name2': [
['L1', ['04', '19'], ['84', '139'], 'O60'],
['L2', ['32'], ['332'], 'Z91']
],
'Name1': [
['L1', ['11', '13'], ['41', '43'], 'P27'],
['L2', ['85', '07', '68', '17', '92'], ['125', '107', '118', '117', '192'], 'O60']
]})
</code></pre>