任务描述
数据来源:武汉市住房和保障房屋管理局 附件中为‘2021年第一季度全市预计达到销售条件的商品房项目清单’,文件名为wuhan2021s1.csv
,文件编码格式为UTF-8
。 请分析数据格式及内容,完成以下功能: 输入选项n 1 如果n为规模升序
,输出按照'可售住宅总规模'的数据从小到大排序,并依次输出数据,每行内的数据间以空格间隔,输出格式见示例
2 如果n为规模降序
,输出按照'可售住宅总规模'的数据从大到小排序,并依次输出数据,每行内的数据间以空格间隔,输出格式见示例
3 如果n为区属
中的某个区,如洪山区
, 首先按照文件数据顺序依次每行输出该区属的项目信息,每行内的数据间以空格间隔,输出格式见示例 然后输出该区属内的可售住宅总规模之和,单位为平方米,保留两位小数,输出格式见示例
4 如果n为总规模
,则输出该文件中所有项目的可售住宅总规模之和,单位为平方米,严格保留两位小数,输出格式见示例
5 如果n不是以上输入,则输出错误输入
答案如下:
with open("step3/wuhan2021s1.csv", "r", encoding='UTF-8') as f:
ls = []
for i in f.readlines()[1:]:
ls.append(i.strip().split(','))
n = input()
if n == '规模降序':
for i in sorted(ls, key=lambda x: eval(x[-1]), reverse=True):
print(' '.join(i))
elif n == '规模升序':
for i in sorted(ls, key=lambda x: eval(x[-1])):
print(' '.join(i))
elif n in set([i[1] for i in ls]):
result=0
for i in ls:
if i[1] == n:
print(' '.join(i))
result=result+eval(i[-1])
print("{:.2f}平方米".format(result))
elif n == '总规模':
print("{:.2f}平方米".format(sum([eval(i[-1]) for i in ls])))
else:
print("错误输入")