praegune kellaaeg 20.06.2025 00:55:31
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
tomm
HV vaatleja
liitunud: 23.05.2003
|
19.11.2012 21:32:34
Häda listidega pythonis |
|
|
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
_________________ Tomm |
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
mattiaza
HV kasutaja

liitunud: 15.07.2002
|
19.11.2012 21:38:00
|
|
|
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 |
|
 |
tomm
HV vaatleja
liitunud: 23.05.2003
|
19.11.2012 21:59:59
|
|
|
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
_________________ Tomm |
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
kris1301
HV vaatleja
liitunud: 01.03.2010
|
19.11.2012 23:27:47
|
|
|
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 |
|
 |
tomm
HV vaatleja
liitunud: 23.05.2003
|
20.11.2012 22:00:48
|
|
|
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 |
|
 |
abstainer
HV kasutaja

liitunud: 19.11.2002
|
21.11.2012 00:35:28
|
|
|
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 |
|
 |
kris1301
HV vaatleja
liitunud: 01.03.2010
|
22.11.2012 02:43:56
|
|
|
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 |
|
 |
abstainer
HV kasutaja

liitunud: 19.11.2002
|
23.11.2012 00:17:11
|
|
|
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
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 |
|
 |
|
lisa lemmikuks |
|
|
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.
|