1设计一个数据结构,存储班级中所有同学的本学期五门课程的成绩信息, 包含三个元素,分别是学号,姓名,成绩。设计出该结构进行存储,为了简化,学号为1~100,学号为1的同学 姓名为 “AI”,学号为30的同学姓名为” A30”,每个同学每门课程的成绩均为随机生成的一个 60~100之间的随机数。 (1)当结构为 dic = (1:(A1', 160,60,60,60,60 111时,【不使用序列化方法】 ①把如上数据写入名字为 score.txt 的文件中。以字符串形式写入。 ②读出score.txt 文件中的内容到内存中,并使用循环对读出的字典进行控制台输出。
时间: 2024-02-22 14:55:13 浏览: 43
使用字典存储班级同学的成绩信息:
```
dic = {}
for i in range(1, 101):
name = 'A' + str(i)
score = [random.randint(60, 100) for j in range(5)]
dic[i] = [name] + score
```
其中,字典的key为学号,value为包含姓名和成绩的列表。
①将数据写入score.txt文件中:
```
with open('score.txt', 'w') as f:
for k, v in dic.items():
f.write(str(k) + ':' + str(v) + '\n')
```
将每个字典的key和value以字符串形式写入文件,每个字典占一行。
②从score.txt文件中读取数据并输出:
```
with open('score.txt', 'r') as f:
for line in f:
data = line.strip().split(':')
key = int(data[0])
value = eval(data[1])
print(key, value)
```
从文件中读取每个字典的key和value,使用eval()函数将字符串转换为字典,然后进行输出。
相关问题
设计一个数据结构,存储班级中所有同学的本学期五门课程的成绩信息,包含三个 分别是学号,姓名,成绩。设计出该结构进行存储,为了简化,学号为1~100,学号为1的 姓名为 “A1”,学号为30的同学姓名为” A30”,每个同学每门课程的成绩均为随机生成的60~100 之间的随机数。 (1)当结构为dic = (1:[“AI”,160,60,60,60,60111时,【不使用序列化方法】 ①把如上数据写入名字为score txt 的文件中。以字符串形式写入。 ② 读出 score.txt 文件中的内容到内存中,并使用循环对读出的字典进行控制台输出。 (2)当结构为((1:{“A1”:160,60,60,60,6011 1, (2:('Az“:1 60,60,60,60,601)3.〕【不使用序列化方
案】 ①把如上数据写入名字为score.txt的文件中。以字符串形式写入。 ② 读出score.txt文件中的内容到内存中,并使用循环对读出的数据进行控制台输出。
(1)使用字典存储班级同学的成绩信息:
```
dic = {}
for i in range(1, 101):
name = 'A' + str(i)
score = [random.randint(60, 100) for j in range(5)]
dic[i] = [name] + score
```
①将数据写入score.txt文件中:
```
with open('score.txt', 'w') as f:
for k, v in dic.items():
f.write(str(k) + ':' + str(v) + '\n')
```
②从score.txt文件中读取数据并输出:
```
with open('score.txt', 'r') as f:
for line in f:
data = line.strip().split(':')
key = int(data[0])
value = eval(data[1])
print(key, value)
```
(2)使用嵌套字典存储班级同学的成绩信息:
```
dic = {}
for i in range(1, 101):
name = 'A' + str(i)
score = [random.randint(60, 100) for j in range(5)]
dic[i] = {name: score}
```
①将数据写入score.txt文件中:
```
with open('score.txt', 'w') as f:
for k, v in dic.items():
f.write(str(k) + ':' + str(v) + '\n')
```
②从score.txt文件中读取数据并输出:
```
with open('score.txt', 'r') as f:
for line in f:
data = line.strip().split(':')
key = int(data[0])
value = eval(data[1])
print(key, value)
```
1. 设计一个数据结构,存储班级中所有同学的本学期五门课程的成绩信息 , 包含三个元素,分别是学号,姓名,成绩。 设计出该结构进行存储,为了简化,学号为1~100, 学号为1的同学姓名为 “A1”, 学号为30的同学姓名为”A30”,每个同学每门课程的成绩均为随机生成的一个60~100之间的随机数。 (1)当结构为dic = {1:[“A1”,[60,60,60,60,60 ]]}时,【不使用序列化方法】 ①把如上数据写入名字为score.txt的文件中。以字符串形式写入。 ②读出score.txt文件中的内容到内存中,并使用循环对读出的字典进行控制台输出。 (2)当结构为[ {1:{ “A1”:[ 60,60,60,60,60]} }, {2:{“A2”:[ 60,60,60,60,60]} }……] 【不使用序列化方法】 ①把如上数据写入名字为score.txt的文件中。以字符串形式写入。 ②读出score.txt文件中的内容到内存中,并使用循环对读出的内容进行控制台输出。 ③使用序列化的方法,分别把(1)和(2)的内容写入文件,然后再从文件中读出。
好的,我明白了你的问题。下面是我的回答:
(1) 当结构为 `dic = {1:["A1",[60,60,60,60,60]]}` 时
① 将数据写入文件
```python
with open('score.txt', 'w') as f:
f.write(str(dic))
```
② 读出文件中的内容并输出
```python
with open('score.txt', 'r') as f:
content = f.read()
score_dict = eval(content)
for key, value in score_dict.items():
print("学号:{},姓名:{},成绩:{}".format(key, value[0], value[1]))
```
(2) 当结构为 `[ {1:{ “A1”:[ 60,60,60,60,60]} }, {2:{“A2”:[ 60,60,60,60,60]} }……]` 时
① 将数据写入文件
```python
with open('score.txt', 'w') as f:
f.write(str(score_list))
```
② 读出文件中的内容并输出
```python
with open('score.txt', 'r') as f:
content = f.read()
score_list = eval(content)
for item in score_list:
for key, value in item.items():
print("学号:{},姓名:{},成绩:{}".format(key, list(value.keys())[0], list(value.values())[0]))
```
(3) 使用序列化的方法
```python
import json
# 将字典序列化并写入文件
with open('score_dict.json', 'w') as f:
json.dump(dic, f)
# 从文件中读出序列化后的字典并输出
with open('score_dict.json', 'r') as f:
score_dict = json.load(f)
for key, value in score_dict.items():
print("学号:{},姓名:{},成绩:{}".format(key, value[0], value[1]))
# 将列表序列化并写入文件
with open('score_list.json', 'w') as f:
json.dump(score_list, f)
# 从文件中读出序列化后的列表并输出
with open('score_list.json', 'r') as f:
score_list = json.load(f)
for item in score_list:
for key, value in item.items():
print("学号:{},姓名:{},成绩:{}".format(key, list(value.keys())[0], list(value.values())[0]))
```
阅读全文