写一个Python程序,(1)读下图中所示的文件cl ass.txt,以第一列班级名为键,以相应的第二列班级人数为值建立字典;(2)按照班级编号从小到大排序,输出每个班级有多少人,并写入到文件newclass.txto 要求上传代码和结果,可以上传文件,也可以贴图。 class.txt Class11 26 Class12 31 Class3 29 Class4 27 Class9 28 Class6 30 Class7 32 Class8 25 Class5 28 Class10 27 Class1 26 Class2 24 输入答案
时间: 2023-09-12 07:12:51 浏览: 77
以下是代码实现:
```python
with open('class.txt', 'r') as f:
class_dict = {}
for line in f.readlines():
class_name, num = line.strip().split()
class_dict[class_name] = int(num)
class_dict = dict(sorted(class_dict.items(), key=lambda x: x[0]))
with open('newclass.txt', 'w') as f:
for key, value in class_dict.items():
f.write(f"{key}: {value}\n")
```
解释:
1. 首先使用`with open('class.txt', 'r') as f:`语句打开文件`class.txt`,并以只读模式读取文件内容。
2. 创建一个空字典`class_dict`,用于存储每个班级的名字和人数。
3. 使用`for`循环逐行读取文件内容,使用`strip()`方法去掉行末的换行符,并使用`split()`方法将每行的字符串拆分成两个部分:班级名和人数。然后将班级名作为字典的键,人数作为值存储在`class_dict`中。
4. 将`class_dict`按照班级编号从小到大排序,使用`dict()`方法将排序后的结果转换为字典。
5. 使用`with open('newclass.txt', 'w') as f:`语句创建一个新文件`newclass.txt`,并以写入模式打开文件。
6. 使用`for`循环遍历排序后的字典`class_dict`,并将每个班级名和人数写入到`newclass.txt`文件中。注意,在写入文件时需要添加换行符`\n`以便换行。
阅读全文