0

私はこのようなファイルを持っています:

group #1
a b c d
e f g h

group #2
1 2 3 4
5 6 7 8

これを次のような辞書にするにはどうすればよいですか。

{'group #1' : [[a, b, c, d], [e, f, g, h]], 
 'group #2' :[[1, 2, 3, 4], [5, 6, 7, 8]]}
4

2 に答える 2

3
file = open("file","r")                       # Open file for reading 
dic = {}                                      # Create empty dic

for line in file:                             # Loop over all lines in the file
        if line.strip() == '':                # If the line is blank
            continue                          # Skip the blank line
        elif line.startswith("group"):        # Else if line starts with group
            key = line.strip()                # Strip whitespace and save key
            dic[key] = []                     # Initialize empty list
        else:
            dic[key].append(line.split())     # Not key so append values

print dic

出力:

{'group #2': [['1', '2', '3', '4'], ['5', '6', '7', '8']], 
 'group #1': [['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h']]}
于 2012-12-01T19:10:15.173 に答える
1

「グループ」タグが見つかるまでファイルを繰り返し処理します。そのタグを使用して、辞書に新しいリストを追加します。次に、別の「グループ」タグにヒットするまで、そのタグに行を追加します。

テストされていません

d = {}
for line in fileobject:
    if line.startswith('group'):
        current = d[line.strip()] = []
    elif line.strip() and d:
        current.append(line.split())
于 2012-12-01T19:04:16.440 に答える