What can I do to make my bad code better:
def checkio(data): p, joint, count = [], "", 0 for i in data: p.append("".join( list((8-len(bin(int(j))[2::]))*"0"+bin(int(j))[2::] for j in i.split(".")) )) if len(data) == 2: for z in range(0, 32): if p[0][z] == p[1][z]: count += 1 joint += p[0][z] else: break if len(data) == 3: for z in range(0, 32): if p[0][z] == p[1][z] == p[2][z]: count += 1 joint += p[0][z] else: break if len(data) == 4: for z in range(0, 32): if p[0][z] == p[1][z] == p[2][z] == p[3][z]: count += 1 joint += p[0][z] else: break o = joint + (32-len(joint))*"0" return("{0}.{1}.{2}.{3}/{4}".format(int(o[0:8],2),int(o[8:16],2),int(o[16:24],2),int(o[24:32],2),count))
p.s. это в этой задаче кол-во адресов от 2х до 4х, а если их будет 100, не писать же мне сто условий до len(data) == 100. Как исправить?