蓝桥杯冲刺:内置模板

练一练「快递分拣」
题目描述
蓝桥王国的每个快递都包含两个参数:1.快递单号 2.快递城市。

小李是蓝桥王国的一名快递员,每天的快递分拣让他苦不堪言。

于是他想要你帮他设计一个程序用于快递的分拣(将不同快递按城市信息分开)。

输入描述
在这里插入图片描述

输出描述
输出共若干行。按城市的输入顺序依次输出城市的名称以及城市的快递个数,以及该城市的所有快递单号(单号按照输入顺序排序)。

输入输出样例
示例
输入

10
10124214 北京
12421565 上海
sdafasdg213 天津
fasdfga124 北京
145252 上海
235wtdfsg 济南
3242356fgdfsg 成都
23423 武汉
23423565f 沈阳
1245dfwfs 成都
copy
输出

北京 2
10124214
fasdfga124
上海 2
12421565
145252
天津 1
sdafasdg213
济南 1
235wtdfsg
成都 2
3242356fgdfsg
1245dfwfs
武汉 1
23423
沈阳 1
23423565f
copy
运行限制
最大运行时间:1s
最大运行内存: 256M
代码加个人注释如下:

city=[]#一个列表用于存放每个省份,例中仅有7个
dig = [[] for i in range(1000)]#创建一个二维列表,中国的总城市在1000个以内,所以外层列表内有1000个小列表,用于存放单号
def find(s):#定义find函数
   for i in range(0,len(city)):#循环遍历总城市个数
       if (city[i]==s):#如果相等则返回i,并继续for循环,如果不相等则直接继续for循环
           return i
   return -1#for循环结束后,返回-1

if __name__ == '__main__':#定义主函数
   n=int (input())#放置输入的第一行数
   for i in range(0,n):
       d=input().split()#把单号与省份分隔开
       #print(d[1]        )#d[1]就是省份
       flag=find(d[1])把省份赋值给上边find函数中的s
       if(flag==-1):
           city.append(d[1])#如果循环结束,city中增加该省份
           dig[len(city)-1].append(d[0])#dig中增加单号
       else:#返回的不是-1,说明该返回数字代表该省份曾出现过
           dig[flag].append(d[0])#dig[4]增加单号

   for i in range(0,len(city)):
       print(city[i],len(dig[i]))#输出该城市与出现的次数
       for j in range(0,len(dig[i])):
           print(dig[i][j])#输出单号【0】【0】,【0】【1】,【1】【0】,【1】【1】
	#dig = [[1,2],[3],[],[],[]] print(dig[0][1])=2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值