data_sourse = [
['王*⻰', '北京市海淀区苏州街⼤恒科技⼤厦南座4层'],
['庞*⻜', '北京市昌平区汇德商厦四楼403'],
['顾*锐', '江苏省扬州市三垛镇⼯业集中区扬州市⽴华畜禽有限公司'],
['王*⻜', '上海市徐汇区上海市徐汇区H88越虹⼴场B座5E'],
['华*升', '北京市海淀区杰睿⼤厦'],
['朱*锴', '上海市浦东新区川沙新镇华川家园33号楼503'],
['陈*盼', '浙江省杭州市闲林街道,⻄溪华东园,⼗幢⼀单元401。'],
['司*鹏', '河南省鹤壁市淇滨⼤道310号 鹤壁京⽴医院'],
['聂*睿', '河北省⽯家庄市中⼭路勒泰中⼼写字楼b座11层'],
['张*', '辽宁省本溪市明兴丽城九号楼四单元'],
['冉*晗', '河北省⽯家庄市体育南⼤街385号'],
['⾼*杰', '北京市朝阳区⼴渠路42号院3号楼,408'],
#数据省略
['刘*', '湖北省武汉市左岭新城1社区15栋'],
['单*成', '⼭东省⽇照市⽇照职业技术学院'],
['韩*红', '上海市杨浦区隆昌路619号10号楼⼆楼'],
['魏*琪', '北京市丰台区汉威国际⼴场4区12号楼'],
['杨*康', '北京市丰台区丰台科技园汉威⼴场12栋'],
]
# 观察可得数据省市都是二位
# 思路:把值中的字符串前二位作为键,获取键的集合,匹对,添加到列表中
prv_set = set() # 创建一个省份集合,空集合创建方法
prv_dict = {}#初始化一个空字典
def get_prv(str): # 定义函数,从一段字符串中获取省份或者直辖市
if str.find('省') != -1:
return str[:str.find('省') + 1]
elif str.find('市') != -1:
return str[:str.find('市') + 1]
else:
exit(str)
for i in data_sourse: # 遍历列表,获取省市的集合
prv = get_prv(i[-1])
prv_set.add(prv)
# prv.add()#将获取到的省市添加到集合
# 创建键值对,值为空列表
for i in prv_set:
prv_dict[i] = []
# 将对应省市添加到(空)列表中
for i in data_sourse:
prv_dict[get_prv(i[-1])].append(i)
# 打印结果
print(prv_dict)
运行结果
部分自治区按省算(加了省字)