gpt4 book ai didi

Python 将文件中的项目读入字典

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:45 24 4
gpt4 key购买 nike

我正在尝试从文件中读取值并将它们作为列表放入字典中,以便稍后在函数中使用它们,例如获取 Maths KT 的总和并获取列表的长度并检查是否至少包含5个值等等。

我拥有的用于将文件放入字典的代码。

    s = {}
f = open("file.txt")
lines = f.readlines()

for i in lines:
if not ":" in i:
if i.strip() == "":
pass
else:
s[i.strip()] = {}
elif ":" in i:
x = i.strip().split(":")
s[next(iter(s))][x[0]] = x[1].split(",")

print(s)
f.close()

它目前打印出来是这样的:

 {'Maths': {'TK': [' 1', ' 2', ' 2', ' 2', ' 0.5'], 'KT': [' 25', ' 10'], 'Tests': [' 10', ' 7'], 'KD': [' 10', ' 15', ' 25']}, 'Physics': {}}

它将 Maths 值替换为 Physics 值,并仅将唯一的 Physics 值添加到 Maths,而 Physics 字典为空。

但它需要看起来像这样,这样我才能使用键和值:

{'Maths': {'TK': [' 1', ' 2', ' 2', ' 2', ' 0.5'], 'KT': [' 26', ' 24', ' 20'], 'Tests': [' 2 ', '2', ' 2', ' 2', ' 1'], 'KD': [' 5', ' 1']}, 'Physics': {'KD': [' 10', ' 15', ' 25'], 'KT': [' 25', ' 10'], 'Tests': [' 10', ' 7']}

文件“file.txt”的样子(它将有更多的行和值):

Maths

TK: 1, 2, 2, 2, 0.5
KT: 26, 24, 20
Tests: 2 ,2, 2, 2, 1
KD: 5, 1

Physics

KD: 10, 15, 25
KT: 25, 10
Tests: 10, 7

最佳答案

遍历文件;跳过空白/空行;在 ':' 上拆分每一行;如果没有冒号,那它一定是一个新的主题——创建一个新的字典;如果有一个冒号添加到当前字典。

data = {}
for line in f:
if len(line) == 1:
continue
line = line.strip()
k,*v = line.split(':')
if not v:
d = {}
data[k] = d
else:
d[k] = v[0].split(',')

利用 extended unpacking
假设主题在文件的后面没有重复 - 文件中只有一个 Maths 部分。

关于Python 将文件中的项目读入字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59273675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com