输入
10
10124214 北京
12421565 上海
sdafasdg213 天津
fasdfga124 北京
145252 上海
235wtdfsg 济南
3242356fgdfsg 成都
23423 武汉
23423565f 沈阳
1245dfwfs 成都
输出
北京 2
10124214
fasdfga124
上海 2
12421565
145252
天津 1
sdafasdg213
济南 1
235wtdfsg
成都 2
3242356fgdfsg
1245dfwfs
武汉 1
23423
沈阳 1
23423565f
解答
代码
city=[]
dig=[[] for i in range(1000)]
# 假设最多有1000个城市,这是一个二维数组,
# 可以理解为一个矩阵,行号对应城市index,每一行的内容是该城市内的所有单号
def find(s):
for i in range(len(city)):
if (city[i]==s):
return i
#找到这个城市对应的index便于对存放快递单号的列表进行查询
return -1
if __name__=="__main__":
n=int(input())#输入有n组城市单号数据
for i in range(0,n):
d=input().split()#
flag=find(d[1])
if flag==-1:#非赋值,这是判断语句,假如没有这个城市
city.append(d[1])#将城市加入到列表中
dig[len(city)-1].append(d[0])#将对应的单号信息添加到dig列表中
else:#假如这个城市在city列表中,将单号添加到dig列表中
dig[flag].append(d[0])
for i in range(0,len(city)):#输出城市及单号按顺序
print(city[i],len(dig[i]))
for j in range(0,len(dig[i])):#输出单号要遍历dig数组对应行数内的元素
print(dig[i][j])#输出单号