蓝桥杯算法练习-LMLPHP

输入

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

解答
蓝桥杯算法练习-LMLPHP
代码

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])#输出单号
04-05 00:35