python 小程序——快递分拣程序
python 小程序——快递分拣程序
学习了字符串,列表以及字典的操作后,动手写一个快递分拣的小程序。
需求
将给出的快递地址转换为要求的字典格式:
给出的数据源:
[
['谢*星', '甘肃省酒泉市雄关路54号东风物流十号'],
['侯*', '河南省郑州市河南省郑州市高新区莲花街牡丹路西雅图荣邦城'],
['孙*康', '江苏省+
['杨*康', '北京市丰台区丰台科技园汉威广场12栋'],
]
要求的格式:
{
"北京市":[
['王*龙', '北京市海淀区苏州街大恒科技大厦南座4层'],
['庞*飞', '北京市昌平区汇德商厦四楼403'],
....
],
"山东省":[
['孙*云', '山东省济南市山东省济南市历下区祥泰汇东国际,一号楼3005室'],
['鞠*龙', '山东省潍坊市玉清街江山帝景B区12号楼一单元14楼'],
['张*', '山东省济南市兴港路三庆城市主人']
....
],
....
}
思路
-
使用字符的切片操作,首先提取地址前三个字符(省份),生成一个list列表;
-
生成的列表当中肯定有重复的,去除列表中重复值,有三种方法
-
使用内置函数
list1 = [1, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9] list2 = list(set(list1)) print(list2)
-
遍历去除重复
1 list1 = [1, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9] 2 list2 = list(set(list1)) 3 print(list2)1 list1 = [1, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9] 2 list2=[] 3 for i in list1: 4 if not i in list2: 5 list2.append(i) 6 print(list2)
-
列表推导式
1 list1 = [1, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9] 2 list2=[] 3 [list2.append(i) for i in list1 if not i in list2]
-
-
生成一个放入同一个省份数据的
comm_pro[]
,使用str.startwith()
函数循环遍历出同一省份的数据放入comm_pro[]
,将得到的同一省份的数据赋值给字典new_data[]
清空comm_pro[]
,循环遍历下一省份的数据。流程图如下:comm_pro = [] for i in province: for j in source_data: if j[1].startswith(i): comm_pro.append(j) new_data[i] = comm_pro #向字典写入同一个省份的数据 comm_pro = [] #清空数据,存放下一省份数据
#向字典写入同一个省份的数据
comm_pro = [] #清空数据,存放下一省份数据
```
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?