python 小程序——快遞分揀程序


python 小程序——快遞分揀程序

學習了字符串,列表以及字典的操作后,動手寫一個快遞分揀的小程序。

需求

將給出的快遞地址轉換為要求的字典格式:
給出的數據源:

[
    ['謝*星', '甘肅省酒泉市雄關路54號東風物流十號'],
	['侯*', '河南省鄭州市河南省鄭州市高新區蓮花街牡丹路西雅圖榮邦城'],
	['孫*康', '江蘇省+
	['楊*康', '北京市豐台區豐台科技園漢威廣場12棟'],
]

要求的格式:

{
	"北京市":[
      ['王*龍', '北京市海淀區蘇州街大恆科技大廈南座4層'], 
      ['龐*飛', '北京市昌平區匯德商廈四樓403'],
      ....
  ],
  "山東省":[
     ['孫*雲', '山東省濟南市山東省濟南市歷下區祥泰匯東國際,一號樓3005室'], 
     ['鞠*龍', '山東省濰坊市玉清街江山帝景B區12號樓一單元14樓'], 
     ['張*', '山東省濟南市興港路三慶城市主人']
     ....
  ],
  .... 
}

思路

  1. 使用字符的切片操作,首先提取地址前三個字符(省份),生成一個list列表;

  2. 生成的列表當中肯定有重復的,去除列表中重復值,有三種方法

    • 使用內置函數

      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]
      
  3. 生成一個放入同一個省份數據的comm_pro[],使用str.startwith()函數循環遍歷出同一省份的數據放入comm_pro[],將得到的同一省份的數據賦值給字典new_data[]清空comm_pro[],循環遍歷下一省份的數據。流程圖如下:

    開始
    條件a
    sdfk
    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 = [] #清空數據,存放下一省份數據
```


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM