在python中将文件分成字典?

时间:2016-12-06 23:29:15

标签: python dictionary

我想从一个包含多行的文件中创建一个字典条目:如果该行只是数字,它将是一个值,但如果不是(即大部分是alpha),它将是以下的键数字,直到文件中出现另一个名称。我无法弄清楚如何通过在达到下一个名称时创建一个新密钥来使代码“重新开始”/继续。

该文件看起来像这样:

Gigi:
0
2
3
2
Bella:
1
6
2
9

我想要一本看起来像这样的词典:

{Gigi: [0,2,3,2], Bella: [1,6,2,9]}

1 个答案:

答案 0 :(得分:2)

my_dict = {}
current_key = None
for line in open('/path/to/file', 'r'):
    if not line.strip().isdigit():
        current_key = line.strip()
        my_dict[current_key] = []
    else:
        my_dict[current_key].append(int(line.strip()))

首先设置一个空字典以向其添加键和值,然后设置一个变量来跟踪当前键,直到下一个非数字替换它,最后遍历文件中的行,如果它不是数字它被设置为当前键并作为空列表添加到字典中,如果它是一个数字,它将被转换为整数并附加到当前键的字典条目。

编辑: 这需要第一行作为键,如果数字首先出现,则字典中没有相应的键来附加值。