>>> from collections import defaultdict
>>> a = defaultdict(list)
>>> for line in '''1 john1 23 54 54
... 2 john2 34 45 66
... 3 john3 35 43 54
... 4 john2 34 54 78
... 5 john1 12 34 65
... 6 john3 34 55 66
... '''.split('\n'):
... data = filter(None, line.split())
... if data:
... a[data[1]].append(data)
...
>>> data
[]
>>> a
defaultdict(<type 'list'>, {'john1': [['1', 'john1', '23', '54', '54'], ['5', 'john1', '12', '34', '65']], 'john2': [['2', 'john2', '34', '45', '66'], ['4', 'john2', '34', '54', '78']], 'john3': [['3', 'john3', '35', '43', '54'], ['6', 'john3', '34', '55', '66']]})
あなた自身の質問に答えるaldreadyたのですか?あなたの解決策はかなり速いと思われます。 –
@Christian:迅速な対応に感謝します。この例のコードでは、3つのループを記述する必要があります。私の実際のファイルでは、john1からjohn30まで持っていますので、私はより簡潔な方法を探していました。 – user839145