Python 将数据源⾥的快递信息进⾏分拣
一、实例题目
将数据源⾥的快递信息进⾏分拣,最终⽣成的数据格式如下:
{
"北京市":[
['王*⻰', '北京市海淀区苏州街⼤恒科技⼤厦南座4层'],
['庞*⻜', '北京市昌平区汇德商厦四楼403'],
....
],
"⼭东省":[
['孙*云', '⼭东省济南市⼭东省济南市历下区祥泰汇东国际,⼀号楼3005室'],
['鞠*⻰', '⼭东省潍坊市⽟清街江⼭帝景B区12号楼⼀单元14楼'],
['张*', '⼭东省济南市兴港路三庆城市主⼈']
}
关于数据源
我相信你们都有的
好吧,没有的话我把资源上传到CSDN上了,需要的话可以自行下载
作业练习-快递信息源 TXT
二、 基本的过滤(核心)
这里放的是最基本的过滤函数,如果你懒,这里就已经做完了
结尾处 print 一下即可
def filter():
filter_city = {} # 存放过滤后的数据
others = [ "宁夏", "新疆", "西藏", "澳门", "香港", "广西"] # 将两个字的省份处理
for item in data:
province = item[1][:2] if item[1][:2] in others else item[1][:3]
# 如果前两个字在 others 列表里 前两个定义为省份名,其余的为三个字定义
if province not in filter_city:
# 判断是否有新建省份的key 在filter_city 字典里,没就新建一个列表
filter_city[province] = [item]
else:
filter_city[province].append(item) # 将内容添加进列表)
return filter_city
懒人的话结尾处print一下就完成了,此文章结束
print(filter())
三、进行统计
将过滤好后的数据进行一个各省市 人数的一个统计
def count(): # 统计过滤后的数据
count = {}
for i in filter():
count[i]=len(filter()[i])
return count
四、格式化打印
数据结构,本身并不存在什么换行,只能是通过输出语句进行操作
只是为了好看
def output(): # 格式化打印 只是为了好看。。
for province in filter():
print(province, ":")
for address in filter()[province]:
print(address)
print()
print(f"{'统计':=^48}")
for stat in count():
print(f"{stat}: 共计{count()[stat]}")
output()