首页 > 解决方案 > 如何从文件中分割某些数字以将它们作为值放入字典中的列表中?

问题描述

如果我的文件是

杰西, 90, 90, 90, 90
奥利弗纽瑟姆, 43, 98, 100, 56
马克, 43, 78, 88, 98

我希望它显示:{'Jessie': [90,90,90,90]}

我遇到的问题是查看我可以在哪里对字符进行适当的切片,以便尽管文件中的间距不同,但可以将百分比放在一个切片中。

这是我为切片写的:

    grades = {}
    for line in filename:
        name, percentage = line.split(",")
        name_end  = line.index(',')
        name = line[0:name_end]
        percentage = [name_end:]
        if percentage not in grades:
            grades[name] = []
        [name].append(percentage)

感谢任何建议!

标签: pythonlistdictionaryslicekey-value

解决方案


使用 Dict Comprehension 来解决这个问题,您可以使用 re 从字符串中捕获名称和数字

import re
_dict = {re.findall('[A-Za-z]+',i).pop():re.findall('\d+',i) for i in list(open('new.txt'))}
print(_dict)
#{'Jessie': ['90', '90', '90', '90'], 'Newsome': ['43', '98', '100', '56'], 'Mark': ['43', '78', '88', '98']}

推荐阅读