1.需求:
将数据源⾥的快递信息进⾏分拣,最终⽣成的数据格式如下:
2.数据源:
data_list = [
['王*龙', '北京市海淀区苏州街大恒科技大厦南座4层'],
['庞*飞', '北京市昌平区汇德商厦四楼403'],
['顾*锐', '江苏省扬州市三垛镇工业集中区扬州市立华畜禽有限公司'],
['李*连', '北京市昌平区立汤路北七家威尼斯花园2区2-3'],
['籍*旭', '北京市房山区良乡鸿顺园西区20号楼3单元601'],
['韩*嵩', '北京市昌平区立汤路威尼斯花园2区2-3'],
['曹*', '北京市朝阳区东三环北路28号博瑞大厦B座'],
['贺*', '上海市徐汇区古美路1515号19号楼1101室'],
['谷*成', '浙江省杭州市城厢街道 下湘湖路1号'],
['王*玉', '上海市嘉定区南翔镇'],
['刘*海', '北京市海淀区玉渊潭南路3号水科院万方城科技楼'],
['杨*娟', '安徽省合肥市清源路中铁国际城和畅园'],
['谢*桥', '北京市海淀区丰秀中路3号院9号楼北京数码大方科技股份有限公司'],
['王*杰', '河北省邯郸市后仓街39号'],
['刘*明', '河北省唐山市卫国北路305张家口银行'],
['王*凡', '天津市南开区卫津路92号天津大学鹏翔公寓'],
['郭*军', '上海市浦东新区郭守敬路498号浦东软件园16号3楼'],
['宋*东', '北京市丰台区万寿路南口288号华信大厦'],
['江*', '安徽省阜阳市临海尚城B区2单元,19号楼'],
['吴*', '河南省郑州市经三路与东风路交汇处金城国际广场6#东单元2403'],
['祁*雄', '湖北省武汉市洪山区白沙洲大道武汉科技大学北苑'],
['吕*', '上海市嘉定区上海市嘉定区嘉罗公路2019号'],
['黄*', '湖北省武汉市国家光电实验室'],
['常*旗', '山东省潍坊市林海生态博览园'],
['陈*', '上海市虹口区吴淞路218号宝矿大厦2501A'],
['郑*琳', '北京市丰台区西马金润家园2区10号楼11单元11-2-1'],
['姚*峰', '江苏省无锡市江苏省无锡市滨湖区龙山龚巷213#'],
['徐*', '浙江省杭州市余杭塘路515矩阵国际中心2号楼705'],
['曹*翎', '江苏省苏州市科教新城太和丽都31-1604'],
['齐*', '江苏省南京市天元东路228号莱茵量子国际'],
['高*', '山西省太原市经济技术开发区龙盛街2号国药控股'],
['刘*', '北京市海淀区中关村丹棱街中国电子大厦B座1608'],
['陈*山', '安徽省六安市南港镇'],
['赵*', '黑龙江省哈尔滨市锦山路5号,黑龙江省地质科学研究所'],
['伍*', '安徽省芜湖市泉塘镇'],
['白*潮', '上海市浦东新区康桥镇环桥路2585弄文怡苑一期27号楼301'],
['苏*', '河南省郑州市登封路晨光社区14号院绿田野超市'],
['王*', '陕西省西安市雁塔区雁翔路58号西安理工大学曲江校区'],
['赵*龙', '河北省廊坊市燕郊经济开发区福成大酒店东福成行政中心三楼信息部'],
['范*勇', '江苏省苏州市苏州市吴中区木渎镇胥口镇621号斯莱克精密设备股份有限公司'],
['白*', '北京市东城区安定门外大街10号楼415'],
['刘*', '北京市昌平区回龙观镇二拨子新村东区7号楼1单元402'],
['钱*庭', '江苏省江苏省泰州市姜堰区南苑新村58号'],
['刘*', '河南省洛阳市城关镇人民路21号'],
['杨*凯', '湖北省武汉市中国地质大学北区1栋'],
['王*', '上海市浦东新区环桥路1137弄秀怡苑31号楼302'],
['夏*', '北京市朝阳区垂杨柳东里11号楼3单元402'],
['张*宇', '北京市海淀区中关村南大街6号中电信息大厦1207'],
['蔡*', '陕西省西安市凤城八路天朗御湖一号楼二单元(西门)'],
['高*', '新疆乌鲁木齐市民主路99号建行大厦12楼审计室'],
['孙*园', '陕西省西安市丈八沟街道科技五路8号数字大厦'],
['王*亚', '北京市朝阳区华盛乐章b座1708'],
['李*博', '山东省淄博市索镇花园小区5#2单元202室'],
['侯*森', '北京市朝阳区北苑路潮驿178'],
['胡*辉', '浙江省杭州市瑞立东方花城2-2-503'],
['杨*平', '北京市昌平区沙河镇于辛庄村赋腾公寓'],
['黄*', '浙江省杭州市衢江路耀江福村3单元602'],
['李*', '上海市黄浦区黄浦区北京东路288弄66号甲,后门201室'],
['邹*', '安徽省淮北市南坪镇黄沟村邹圩庄'],
['刘*', '北京市昌平区沙河镇赋腾公寓E516'],
['彭*', '北京市望京SOHOt3 40层'],
['张*乾', '河南省周口市八一路人民路交叉口医药局家属楼'],
['贺*梦', '北京市通州区永顺镇世纪星城92号楼二单元'],
['冯*琴', '北京市海淀区金澳国际写字楼1115 中汇'],
['邓*亮', '湖北省武汉市云林街台北一路58号'],
['李*沙', '北京市昌平区城南街道北清路珠江摩尔国际大厦五号楼二单元906'],
['徐*瑞', '上海市徐汇区古美路1595号宝石园27号楼2楼D区'],
['梁*', '陕西省西安市电子二路18号(西安石油大学)'],
['徐*', '浙江省衢州市西区广电大楼'],
['雷*强', '河南省信阳市汪桥镇街道滨河花园A幢6208'],
['张*亮', '天津市河西区郁江道17号陈塘科技328'],
['陈*', '上海市浦东新区东方路1217号陆家嘴金融服务广场15楼'],
['郭*', '北京市昌平区北七家镇东三旗365号'],
['李*扬', '上海市浦东新区北蔡镇北艾路1500弄6号楼203'],
['汝*明', '吉林省长春市长春光机所研究生部D栋'],
['朱*懿', '上海市静安区陕西北路66号科恩国际中心1027室'],
['刘*', '上海市浦东新区五莲路 锦河苑'],
['任*荣', '陕西省西安市软件新城软件公寓'],
['王*', '上海市闵行区莲花路2080弄50号C幢3楼'],
['萌*', '北京市西城区金融街邮政集团公司'],
['张*宾', '河南省郑州市文治路泰祥投资集团楼下新锐广告'],
]
3.解题思路:
1.循环遍历取出所有列表的[1]值 2.对列表[1]的值进行前三个字的切片 3.循环遍历创建前三个字的字典(如果存在就直接添加为value,如果没有,就先创建,再添加)
4.我的实现:
from pprint import pformat
data_list = [
['王*龙', '北京市海淀区苏州街大恒科技大厦南座4层'],
['庞*飞', '北京市昌平区汇德商厦四楼403'],
['顾*锐', '江苏省扬州市三垛镇工业集中区扬州市立华畜禽有限公司'],
['李*连', '北京市昌平区立汤路北七家威尼斯花园2区2-3'],
['籍*旭', '北京市房山区良乡鸿顺园西区20号楼3单元601'],
['韩*嵩', '北京市昌平区立汤路威尼斯花园2区2-3'],
['曹*', '北京市朝阳区东三环北路28号博瑞大厦B座'],
['贺*', '上海市徐汇区古美路1515号19号楼1101室'],
['谷*成', '浙江省杭州市城厢街道 下湘湖路1号'],
['王*玉', '上海市嘉定区南翔镇'],
['刘*海', '北京市海淀区玉渊潭南路3号水科院万方城科技楼'],
['杨*娟', '安徽省合肥市清源路中铁国际城和畅园'],
['谢*桥', '北京市海淀区丰秀中路3号院9号楼北京数码大方科技股份有限公司'],
['王*杰', '河北省邯郸市后仓街39号'],
['刘*明', '河北省唐山市卫国北路305张家口银行'],
['王*凡', '天津市南开区卫津路92号天津大学鹏翔公寓'],
['郭*军', '上海市浦东新区郭守敬路498号浦东软件园16号3楼'],
['宋*东', '北京市丰台区万寿路南口288号华信大厦'],
['江*', '安徽省阜阳市临海尚城B区2单元,19号楼'],
['吴*', '河南省郑州市经三路与东风路交汇处金城国际广场6#东单元2403'],
['祁*雄', '湖北省武汉市洪山区白沙洲大道武汉科技大学北苑'],
['吕*', '上海市嘉定区上海市嘉定区嘉罗公路2019号'],
['黄*', '湖北省武汉市国家光电实验室'],
['常*旗', '山东省潍坊市林海生态博览园'],
['陈*', '上海市虹口区吴淞路218号宝矿大厦2501A'],
['郑*琳', '北京市丰台区西马金润家园2区10号楼11单元11-2-1'],
['姚*峰', '江苏省无锡市江苏省无锡市滨湖区龙山龚巷213#'],
['徐*', '浙江省杭州市余杭塘路515矩阵国际中心2号楼705'],
['曹*翎', '江苏省苏州市科教新城太和丽都31-1604'],
['齐*', '江苏省南京市天元东路228号莱茵量子国际'],
['高*', '山西省太原市经济技术开发区龙盛街2号国药控股'],
['刘*', '北京市海淀区中关村丹棱街中国电子大厦B座1608'],
['陈*山', '安徽省六安市南港镇'],
['赵*', '黑龙江省哈尔滨市锦山路5号,黑龙江省地质科学研究所'],
['伍*', '安徽省芜湖市泉塘镇'],
['白*潮', '上海市浦东新区康桥镇环桥路2585弄文怡苑一期27号楼301'],
['苏*', '河南省郑州市登封路晨光社区14号院绿田野超市'],
['王*', '陕西省西安市雁塔区雁翔路58号西安理工大学曲江校区'],
['赵*龙', '河北省廊坊市燕郊经济开发区福成大酒店东福成行政中心三楼信息部'],
['范*勇', '江苏省苏州市苏州市吴中区木渎镇胥口镇621号斯莱克精密设备股份有限公司'],
['白*', '北京市东城区安定门外大街10号楼415'],
['刘*', '北京市昌平区回龙观镇二拨子新村东区7号楼1单元402'],
['钱*庭', '江苏省江苏省泰州市姜堰区南苑新村58号'],
['刘*', '河南省洛阳市城关镇人民路21号'],
['杨*凯', '湖北省武汉市中国地质大学北区1栋'],
['王*', '上海市浦东新区环桥路1137弄秀怡苑31号楼302'],
['夏*', '北京市朝阳区垂杨柳东里11号楼3单元402'],
['张*宇', '北京市海淀区中关村南大街6号中电信息大厦1207'],
['蔡*', '陕西省西安市凤城八路天朗御湖一号楼二单元(西门)'],
['高*', '新疆乌鲁木齐市民主路99号建行大厦12楼审计室'],
['孙*园', '陕西省西安市丈八沟街道科技五路8号数字大厦'],
['王*亚', '北京市朝阳区华盛乐章b座1708'],
['李*博', '山东省淄博市索镇花园小区5#2单元202室'],
['侯*森', '北京市朝阳区北苑路潮驿178'],
['胡*辉', '浙江省杭州市瑞立东方花城2-2-503'],
['杨*平', '北京市昌平区沙河镇于辛庄村赋腾公寓'],
['黄*', '浙江省杭州市衢江路耀江福村3单元602'],
['李*', '上海市黄浦区黄浦区北京东路288弄66号甲,后门201室'],
['邹*', '安徽省淮北市南坪镇黄沟村邹圩庄'],
['刘*', '北京市昌平区沙河镇赋腾公寓E516'],
['彭*', '北京市望京SOHOt3 40层'],
['张*乾', '河南省周口市八一路人民路交叉口医药局家属楼'],
['贺*梦', '北京市通州区永顺镇世纪星城92号楼二单元'],
['冯*琴', '北京市海淀区金澳国际写字楼1115 中汇'],
['邓*亮', '湖北省武汉市云林街台北一路58号'],
['李*沙', '北京市昌平区城南街道北清路珠江摩尔国际大厦五号楼二单元906'],
['徐*瑞', '上海市徐汇区古美路1595号宝石园27号楼2楼D区'],
['梁*', '陕西省西安市电子二路18号(西安石油大学)'],
['徐*', '浙江省衢州市西区广电大楼'],
['雷*强', '河南省信阳市汪桥镇街道滨河花园A幢6208'],
['张*亮', '天津市河西区郁江道17号陈塘科技328'],
['陈*', '上海市浦东新区东方路1217号陆家嘴金融服务广场15楼'],
['郭*', '北京市昌平区北七家镇东三旗365号'],
['李*扬', '上海市浦东新区北蔡镇北艾路1500弄6号楼203'],
['汝*明', '吉林省长春市长春光机所研究生部D栋'],
['朱*懿', '上海市静安区陕西北路66号科恩国际中心1027室'],
['刘*', '上海市浦东新区五莲路 锦河苑'],
['任*荣', '陕西省西安市软件新城软件公寓'],
['王*', '上海市闵行区莲花路2080弄50号C幢3楼'],
['萌*', '北京市西城区金融街邮政集团公司'],
['张*宾', '河南省郑州市文治路泰祥投资集团楼下新锐广告'],
]
# 创建空字典,用于存放分拣出来的数据
province_dic = {}
# 1.循环遍历取出所有列表的值
for line in data_list:
# 2.对列表[1]的值进行前三个字的切片操作
province = line[1][:3]
# print(province)
# 3.循环遍历创建前三个字的字典(如果存在就直接添加为value,如果没有,就先创建key,再添加value)
try:
province_dic[province].append(line)
except KeyError:
province_dic[province] = []
province_dic[province].append(line)
# 设置输出时的显示格式问题(需要导包)
pr_dic = pformat(province_dic)
print(pr_dic)
5.还有问题:
固定切片前3个字时,对于“新疆乌鲁木齐市”或“黑龙江省”这种多字省市不公平……