» »

Python | List of list

Python | List of list

HotBurek ::

Evo, super simpl problem, iščem rešitev...

item = "b";
list = (("a", "1"), ("b", "2"), ("c", "3"));

if item in ("a", "b", "c"):    # <-- thisssssssssssss
    print("marija, noter je!!");
else:
    print("??");

Kako v if stavku prebrat list, v katerem bodo samo prvi elementi (črke)?

Tale zadeva lepo dela in izpiše a,b,c:
for i in range(0, len(list)):
    print(list[i][0]);


Probal sem print(list[:][0]);, ki izpiše ('a', '1'), rabim pa ('a', 'b', 'c');.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
  • spremenilo: HotBurek ()

jype ::

list[:] == list, tako da s tem nisi ničesar naredil

[x[0] for x in list] si mislil?

HotBurek je izjavil:

Kako v if stavku prebrat list, v katerem bodo samo prvi elementi (črke)?
V vsakem primeru je to neučinkovito, ker je vedno nujna iteracija. Najlažje takole:

if item in dict(list):

Zgodovina sprememb…

  • spremenilo: jype ()

HotBurek ::

Ja, to je to. Sem še malo iskal, in sem našel.

https://stackoverflow.com/questions/250...

Glede setup-a, recimo primer:

list = (("/home.html", "Domov"), ("/info.html", "Informacije"), ("/contact.html", "Kontakt"));
if requesturi in [out[0] for out in list]:
    # do some stuff...

Tako lahko uporabim if/elif/elif.


Sicer druga rešitev bi bila:
for i in range (0, len(list)):
    if list[i][0] == requesturi:
        # do some stuff


Še osnovni sample:

item = "b";
item2 = "d";
list = (("a", "1"), ("b", "2"), ("c", "3"));

print([out[0] for out in list]);

if item in [out[0] for out in list]:
    print(str(item) + " je noter");
else:
    print(str(item) + " NI noter");

if item2 in [out[0] for out in list]:
    print(str(item2) + " je noter");
else:
    print(str(item2) + " NI noter");
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()

jype ::

Joj, to so strahotno neučinkoviti prijemi.

Če gre za domačo nalogo, potem naj bo, sicer pa priporočam kaj manj obscenega.

HotBurek ::

V kakšnem kontekstu so neunčikoviti oz. kako zmanjšat to obscenost?
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

jype ::

Vsakič, ko izvedeš list comprehension ([expr for var in list]) se dejansko izvede zanka, ki si jo zgoraj napisal. Zahtevnost izvajanja je vsaj O(n).

HotBurek je izjavil:

list = (("/home.html", "Domov"), ("/info.html", "Informacije"), ("/contact.html", "Kontakt"));


Tole rešiš tako:

strani = {
  "/home.html": {
    title: "Domov",
    ...
  },
  "/info.html": {
    title: "Informacije",
    ...
  },
  "/kontakt.html": {
    title: "Kontakt",
    ...
  },
}

print(item, strani.get(item, {}).get("title", "404"))


Namesto treh pikc so še dodatne reči, ki jih lahko dodaš not. Ker očitno izumljaš toplo vodo, se ti splača pogledat kaj od tega:

https://www.djangoproject.com/
https://www.fullstackpython.com/flask.h...
https://trypyramid.com/

Zgodovina sprememb…

  • spremenilo: jype ()


Vredno ogleda ...

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

potni list

Oddelek: Loža
81199 (862) Invictus
»

gledališki list

Oddelek: Programska oprema
91662 (1480) demon#666
»

Garancijski list

Oddelek: Loža
101798 (1548) kajpravis
»

potni list

Oddelek: Problemi človeštva
51200 (1123) tom13
»

Mail lista

Oddelek: Izdelava spletišč
101061 (439) marS

Več podobnih tem