Új hozzászólás Aktív témák

  • cousin333

    addikt

    válasz XP NINJA #512 üzenetére

    1. kérdés

    A Python lista nem igazán erre való, de van egy elegáns, bár nem triviális megoldás a problémára, ami megvillant valamit a Python tudásából :) :

    szamok = list(range(90)) # A 90 számból álló lista
    sor = 6
    elem = 15

    # tuple-k listája
    felosztva = list(zip(*[iter(szamok)] * elem))

    # listák listája
    felosztva = [list(i) for i in zip(*[iter(szamok)] * elem)]

    Ha valaki nagyon tömbökkel/mátrixokkal akar szórakozni, akkor mindenképpen a numpy modul ajánlott. Ez a tudományos területen a Python-használat alfája és omegája, viszont nem része az alap Python telepítésnek. Ebben pl. van reshape függvény, ami pont erre való, igaz azt nem listákon, hanem a speciálisabb ndarray tömbökön lehet végrehajtani.

    2. kérdés

    Erre alapvetően a datetime modul datetime objektuma való, de az dátumot is vár, nem csak órát meg percet. Furcsamód a time objektum nem támogatja a kivonást. Példának ott az #509-es hozzászólásom.

    3. kérdés

    Ez két lépés. Az első, hogy bizonyos karaktereket le kell cserélni. Ehhez létre kell hozni egy hozzárendelést, ami megmondja, hogy mit mire kell cserélni, majd el kell végezni a cserét. Nem tudom, hogy van-e egyszerűbb módszer.

    >>> szoveg = "Árvíztűrő tükörfúrógép"
    >>> trans = str.maketrans("áéíöüóőúűÁÉÍÖÜÓŐÚŰ", "aeiouoouuAEIOUOOUU")
    >>> szoveg.translate(trans)
    'Arvizturo tukorfurogep'

    Az angol karakterkészlet a string modulban szerepel:

    >>> import string
    >>> string.ascii_letters
    'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

    Ebből az eltávolitás valahogy így megy:

    >>> szoveg = "Szoveg,-amit meg?:akarunk#szurni"
    >>> szurt = [i for i in szoveg if i in string.ascii_letters or i in " "]
    >>> szurt = "".join(szurt)
    >>> szurt
    'Szovegamit megakarunkszurni'

    [ Szerkesztve ]

    "We spared no expense"

Új hozzászólás Aktív témák