» »

[python] Seznami, terke

[python] Seznami, terke

no1pheeew ::

Pozdravljeni,

S programiranjem sem se spoznal dobra dva tedna nazaj in me konkretno muči problem, ki ga nikakor ne morem rešiti.

npr.
seznam = [(7, 4), (13, 3), (16, 6), (18, 3)]


1. Kako bi lahko iz tega seznama v seznamy (nov seznam) povlekel vse y obstoječega seznama?

2. kako bi lahko v kodi definiral x, y in mi nebi bilo treba delati novega seznama?

Za odgovore se že v naprej zahvaljujem ;)

jype ::

[y for x, y in seznam]
[el[1] for el in seznam]
for y in (el[1] for el in seznam):
  # do something with y


Za 2. pa nisem prepričan, kaj bi rad.

Zgodovina sprememb…

  • spremenilo: jype ()

FrEaKmAn ::

1.
novi_seznam = [y for x,y in seznam]


http://codepad.org/0AXRRymm

2. če prav razumem, ti hočeš met vnaprej 2 seznama samo x in y in potem zbildat seznam??

Zgodovina sprememb…

  • spremenil: FrEaKmAn ()

no1pheeew ::

Hvala obema za pomoč ;) Iz seznam sem naredil seznam_y = [y for x,y in seznam] zadevo "razsortiral" in dobil nabor y katere potrebujem.

Bi mi mogoče kdo znal pomagati kako bi lahko številke v seznam_y primerjal s seznam(samo z y v seznamu) in izpisal (x,y) katerim je y enak v obeh seznamih? :)

se pravi:

seznam = [(x,3)(x,4)(x,5)(x,8)]
seznam_y = [0,3,6,2,7,8]


Sam sem že iskal v tej smeri prišel tudi do tega:

nov_seznam = []
for stevilka in seznam_y:
    if x or y in seznam:
        new_list.append(x,y)

    print(new_list)


samo imam splet probleme z definiranjem x in y :(

Zgodovina sprememb…

  • spremenilo: no1pheeew ()

FrEaKmAn ::

nekaj takega..

for x,y in seznam:
    if y in seznam_y:
        new_list.append((x,y))

ali pa bolj python styli-like
new_list = [(x,y) for x,y in seznam if y in seznam_y]

Zgodovina sprememb…

  • spremenil: FrEaKmAn ()

frudi ::

no1pheeew, nisem ziher, če pravilno razumem, kaj hočeš. Tvoj tekst razumem na en način, medtem ko koda implicira nekaj druga :).
Če želiš tiste elemente iz seznam = [(1,3), (2,4), (3,5), (4,8)], katerih y komponenta je kjerkoli v seznam_y, potem ti je FrEaKmAn dal pravo rešitev.

Če pa želiš samo tiste (x,y) iz seznam-a, ki, če rečemo, da so na mestu i, je njihov y enak i-temu elementu v seznam_y, je rešitev recimo:
seznam = [(1,3), (2,4), (3,5), (4,8)]
seznam_y = [0, 3, 6, 2, 7, 8]
nov_seznam = [(x,y) for i, (x,y) in enumerate(seznam) if seznam_y[i] == y and len(seznam_y) > i]
Ampak za tvoje podatke bo to prazen seznam :)
1ACDoHVj3wn7N4EMpGVU4YGLR9HTfkNhTd... in case I've written something useful :)

no1pheeew ::

Res sem malo nerazločno napisal kaj hočem, da se z y dogaja, vendar sem kasneje uporabil čisto drugo rešitev, ki nima veze s seznami v tolikšni meri kot sem to počel prej. Zopet se obema zahvaljujem za pomoč in posledično tudi novo znanje ;)


Vredno ogleda ...

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

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317164 (7912) black ice
»

program za delo s polinomi v C#

Oddelek: Programiranje
181781 (1019) majster123
»

Naloga iz Putka - UPM

Oddelek: Programiranje
242057 (1393) NejcSSD
»

[python]kako naj pretvorim nested list v set?

Oddelek: Programiranje
5760 (601) Isotropic
»

[Python] učenje

Oddelek: Programiranje
372598 (1895) Isotropic

Več podobnih tem