» »

[Python] Polja, matrike

[Python] Polja, matrike

Bela01 ::

Zopet se oglašam in imam zopet eno začetniško vprašanje.
Po dolgem času sem se spet spravla nazaj k Pythonu. Rada bi napisala program ki bi uredil polje naključno podanih števil (z metodo urejanje z mehurčki). Problem je v tem, ker ne vem kako to napisat v Pythonu. V C++ gre to vse tako lepo, tu pa hm ... :\ (pojma nimam)
Polje mi je uspelo napolnit in izpisat (to je edino kar dela). Ne pa ga tudi uredit.
Problem je kako "prenest" lokalno spr. a (polje) iz ene funkcije (ki polje polni) v drugo funkcijo, ki polje ureja. Kako se sploh bere števila iz polja?! (zgleda da ni niti malo podobno c++ :) )

In primer mojega "programa":

"""Program izpise polje nakljucnih stevil. 
Nato ga uredi in ponovno izpise. """ 

def nakljucno(minimum, maximum=None, shape=[]): 
   a= ((maximum-minimum)* random(shape)) 
   a= a + minimum 

   if isinstance(a, Numeric.ArrayType): 
      return a.astype(Numeric.Int) 
   else: 
      return int(a) 

def uredi(polje=[]): 
   i=1 
   j=2 
   a=20 
   for i in range(1,a+1): 
      for j in range(1,a+1): 
         if (polje[j-1] > polje[j]): 
              x= polje[j-1] 
              polje[j-1]= polje[j] 
              polje[j]= x 
      j=j+1
return polje 

print "Program uredi polje nakljucnih stevil in ga izpise." 
a= nakljucno(10, 25, shape=[20]) 
print a 

print "\n" 
print uredi(a)



[edit: Naslednjič najprej PREBERI ME: označevanje topicov v oddelku programiranje - snow]
  • spremenilo: snow ()

NoComent! ::

def uredi(polje=[]): 
    for i in range(len(polje)-1,1,-1):
        for j in range(i):
            if polje[j]>polje[j+1]:
                x=polje[j]
                polje[j]=polje[j+1]
                polje[j+1]=x
    return polje

Upam da to pomaga

snow ::

Python je ful lep ker lahko dva elementa zamenjaš tako(meni lepši način):
polje[j],polje[j+1]=polje[j+1],polje[j]


Drugače pa mislim, da ti ni treba vračati iz funkcij, če spreminjaš original, kot je to v tem primeru.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

OwcA ::

Doda fleksibilnost, čeprav ni čisto v skladu s Python konvencijami.
Otroška radovednost - gonilo napredka.

kihc ::

polje[j],polje[j+1]=polje[j+1],polje[j]


Ok, tole je meni rahlo nerazumljivo. Se pravi, da če narediš a,b,c = c,b,a ti vrednosti obrne okrog?
x

OwcA ::

Ja, ker je to ena sama izjava, se najprej ovrednoti cela desna stran, šele potem pride do prirejanja vrednosti.
Otroška radovednost - gonilo napredka.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317850 (8598) black ice
»

[JAVA] Izpis imen vseh datotek iz direktorija in poddirektorijev

Oddelek: Programiranje
214861 (2890) Slovenet
»

Python iskanje podvojenih vrednosti

Oddelek: Programiranje
181470 (1183) BlueRunner
»

[Java] Preverjanje polja za iste stringe

Oddelek: Programiranje
81127 (1005) infiniteLoop
»

[C++] urejanje nizov po velikosti

Oddelek: Programiranje
82257 (2038) Matako

Več podobnih tem