Domanda

Scrivo un programma per radix Ordina alcuni numeri che si trova in un file. Ecco il mio codice:

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()
.

Allora, ho provato a collegare RSORT () e RSORT (A) nel f.write (), continua a dirmi male.E se lo lascio vuoto, mi dice che la funzione ha bisogno di prendere esattamente 1 argomento.Cosa dovrei fare per stampare i risultati del radix Ordina nel radix File.out?

È stato utile?

Soluzione

Non ho guardato la funzione di Rsort in quanto la tua domanda sembra essere su I / O e funzioni che chiamano in generale.Ecco la possibilità (supponendo che i numeri siano tutti sulla prima riga).

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()
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top