python——csv文件排序输出

文章详细讲解了如何使用Python读取grade0.csv文件,按给定列进行升序排序,并以特定格式输出排序后的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

csv文件排序输出

类型:文件处理

描述

读入grade0.csv文件,按照要求对第i列升序排列后输出。(提示:可以使用语句fo=open('grade0.csv','r',encoding='UTF-8')来打开文件。)
Grade0.csv文件的内容形如下图:
在这里插入图片描述

输入格式

输入为一个数正整数 i,要求根据 grade0.csv 文件的第 i 列值升序排列后输出文件中的数据,当第 i 列数据值相同时,按第 1 列数据的值辅助排序(测试数据保证为正整数且不超过数据列数)。

输出格式:

按行输出排序后的信息,数据列之间用tab(‘\t’)分隔,最后一列后面没有空格。

示例 1

输入:

4

输出:

20170101 章阳 Male A
20170102 徐芳 Female A
20170112 胡瑞欣 Female A
20170113 田益宾 Male A
20170115 张铭武 Male A
20170106 周思云 Female B
20170109 刘春燕 Female B
20170110 刘兴怡 Female B

参考答案

def csv_to_lst(filename):
	"""接收文件名为参数,读取数据到二维列表中,返回二维列表。形如
	[['20170101', '章阳', 'Male', 'A'],... ['20170108', '刘忆宁', 'Male', 'E']]
	"""
	with open(filename, 'r', encoding='UTF-8') as f:
		grade_in_lst = [line.strip().split(',') for line in f]  # 逐行切分为列表,得到二维列表
	return grade_in_lst


def sort_lst(list_name, n):
	"""接收需要排序的二维列表名和整数的排序列序号(范围为:1,2,3,4)为参数,返回排序后的二维列表。"""
	list_name.sort(key=lambda x: x[n - 1])  # 列序号从1开始,列表中的序列从0开始,排序依据用x[n - 1]
	return list_name                        # 返回排序后的列表


def output(ls):
	"""接收排序后的二维列表为参数,逐行输出,每行的元素间用制表符分隔。"""
	for line in ls:             # line 为子列表
		print(*line, sep='\t')  # *对子列表进行解包,得到多个元素,sep指定分隔符


if __name__ == '__main__':
	file = 'grade0.csv'
	num = int(input())
	grade_list = csv_to_lst(file)
	ls_in_sort = sort_lst(grade_list, num)
	output(ls_in_sort)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_62488776

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值