Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Häda listidega pythonis märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
tomm
HV vaatleja

liitunud: 23.05.2003




sõnum 19.11.2012 21:32:34 Häda listidega pythonis vasta tsitaadiga

Tere,

Ilmselt oskajale lihtne mure.
On kaks listi, ühe sisu on staatiline(tuleb tekstifailist), teise sisu loob funktsioon. Vaja oleks nad üksteise kõrvale panna.
Ehk siis
l1 = [1,0,0,1,1,1,0]
l2 = [0.34,0.56,0.98,0.12,0.77,0.88,0.55]
Väljastus oleks vajalik kujul:
1 0.34
0 0.56
0 0.98
...

Mõistus sai just otsa icon_smile.gif

_________________
Tomm
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
mattiaza
HV kasutaja
mattiaza

liitunud: 15.07.2002




sõnum 19.11.2012 21:38:00 vasta tsitaadiga

Täpselt selle jaoks on zip funktsioon:
for a, b in zip(list1, list2):
    print a, b

Tagastab listi, mille iga element on paarikaupa esimesest ja teisest võetud.

Kui listid on väga suured (pikkuses sadu tuhandeid või miljoneid) ja korraga mälus hoida pole vaja, siis on efektiivsem kasutada izip varianti.
Kommentaarid: 25 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 25
tagasi üles
vaata kasutaja infot saada privaatsõnum
tomm
HV vaatleja

liitunud: 23.05.2003




sõnum 19.11.2012 21:59:59 vasta tsitaadiga

Tänud.
Ilmselt on mul mingi muu jurr, usutavasti miski itereerimisega.
Tüüp tagastab mulle, kas l2 kenasti ja selle alla laob l1:
[0.34]
[0.56]
...
[1]
[0]
...
või siis väljastab l1 ning sinna järgi l2 -st viimase elemendi:
[1] [0.55]
[0] [0.55]
...

Arvatavasti ei oska ma lihtsalt õigest kohast otsida või õigesti küsida icon_smile.gif

_________________
Tomm
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
kris1301
HV vaatleja

liitunud: 01.03.2010




sõnum 19.11.2012 23:27:47 vasta tsitaadiga

Ise teeksin sedasi.

l1 = [1,0,0,1,1,1,0]
l2 = [0.34,0.56,0.98,0.12,0.77,0.88,0.55]
for i in range (len(l1)):
    print ("%i %.2f" %(l1[i],l2[i]))
tagasi üles
vaata kasutaja infot saada privaatsõnum
tomm
HV vaatleja

liitunud: 23.05.2003




sõnum 20.11.2012 22:00:48 vasta tsitaadiga

Tere õhtust,

Küsiks korra veel nõu.
Väljastatakse for loop -ga float -e kujul:
[0.56]
[0.87]
[0.98]
... ridade arvuks on n+1, ehk siis vägasuur number.
Mismoodi oleks neid võimalik saada ühte listi kujul [0.56, 0.87, 0.98]?

_________________
Tomm
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
abstainer
HV kasutaja
abstainer

liitunud: 19.11.2002




sõnum 21.11.2012 00:35:28 vasta tsitaadiga

tomm kirjutas:
Tere õhtust,

Küsiks korra veel nõu.
Väljastatakse for loop -ga float -e kujul:
[0.56]
[0.87]
[0.98]
... ridade arvuks on n+1, ehk siis vägasuur number.
Mismoodi oleks neid võimalik saada ühte listi kujul [0.56, 0.87, 0.98]?


l2 = [0.34,0.56,0.98,0.12,0.77,0.88,0.55]
def random_name(in_val):
    for i in in_val:
        yield i + 1

new_list1 = [x for x in random_name(l2)]

# teine lühem võimalus, kuid koodi loetavus võib sellega halveneda
new_list2 =  map(lambda x: x + 1, l2)

_________________
nobody's perfect
Kommentaarid: 15 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 15
tagasi üles
vaata kasutaja infot saada privaatsõnum
kris1301
HV vaatleja

liitunud: 01.03.2010




sõnum 22.11.2012 02:43:56 vasta tsitaadiga

Minu arvates kõige lihtsam oleks kasutada append funktsiooni mis lisab listi lõppu soovitud arvu.
for tsükkel:
   väljastatav float
   new_list.append(väljastatav float)
tagasi üles
vaata kasutaja infot saada privaatsõnum
abstainer
HV kasutaja
abstainer

liitunud: 19.11.2002




sõnum 23.11.2012 00:17:11 vasta tsitaadiga

kris1301 kirjutas:
Minu arvates kõige lihtsam oleks kasutada append funktsiooni mis lisab listi lõppu soovitud arvu.
for tsükkel:
   väljastatav float
   new_list.append(väljastatav float)


lihtsuse osas ütleks, et maitse asi icon_smile.gif
kuid praktilisuse osas, append on aeglasem, kui map või list comprehension, mis suuremate listide puhul on suht tähtis asjaolu...

_________________
nobody's perfect
Kommentaarid: 15 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 15
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Häda listidega pythonis
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.