Question

J'écris un programme pour Radix Trier certains numéros dans un fichier. Voici mon code:

rsort(a):
    if a:
        bins = [ [],[],[],[],[],[],[],[],[],[] ]
        m = max(a)
        r = 1
        while m > r:
            for e in a:
                bins[(e/r)%10].append(e)
            r = r * 10
            a = []
            for i in range(10):
                a.extend(bins[i])
                bins[i] = []
        return a

def readfile(infile):
  grid = []
  f = open(infile, 'r')
  lines = f.readlines()
  f.close()
  return grid

def writefile(outfile):
    grid = []
    f = open(outfile, 'w')
    f.write()
    f.close
    return grid

def main():
    infile = readfile("radix.in")
    outfile = writefile("radix.out")
    sortedvar = rsort(infile)
main()

Alors, j'ai essayé de brancher RSORT () et RSORT (A) dans le F.Write (), cela continue de me dire tort.Et si je le laisse vide, il me dit que la fonction doit prendre exactement 1 argument.Que dois-je faire pour imprimer les résultats de tri radix dans le fichier radix.out?

Était-ce utile?

La solution

Je n'ai pas regardé la fonction RSORT au fur et à mesure que votre question semble être à propos de l'E / S et de la fonction appelant en général.Voici une possibilité (en supposant que les chiffres sont tous sur la première ligne).

def readfile(infile):
  nums = []
  f = open(infile, "r")
  line = f.readline()
  f.close()
  return [int(x) for x in line.split()]

def writefile(outfile, nums):
    f = open(outfile, 'w')
    f.write(' '.join([str(x) for x in nums]))
    f.write('\n')
    f.close()

def main():
    nums = readfile("radix.in")
#    nums = rsort(nums)
    writefile("radix.out", nums)

main()

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top