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

  • cousin333

    addikt

    válasz Hege1234 #3653 üzenetére

    Szerintem a megoldást a reguláris kifejezések és egy generátor kombinációja jelenti. Előbbi megkeresi a beadott sztringben az értékeket, utóbbi meg egyesével visszaadja a feldolgozott elemeket, amiket aztán felhasználhatsz a feldolgozás során. Egy gyors példa:

    import re

    def process(text):
        for match in re.finditer(r'(\d+-\d+)|\d+', text):
            x = match.group()
            if '-' in x:
                a, b = x.split('-')
                for i in range(int(a), int(b)+1):
                    yield i
            else:
                yield int(x)

    Ezt így tudod használni az alábbi példaszövegen:

    text = "1,2 3 4 25,16-20,22 7"

    x = list(process(text))
    #x: [1, 2, 3, 4, 25, 16, 17, 18, 19, 20, 22, 7]

    A kódodba meg az inputnál tudod beilleszteni:

    text = input('\nírd ide a számot vagy számokat: ')

    for number in process(text):
        id_ = title['list'+str(number)]['j_id']
        print('\n'+str(id_))

    A lista felhasználása előtt esetleg sorrendbe rakhatod az értékeket, és egy set()-tel kiszűrheted a duplikátumokat.

    [ Szerkesztve ]

    "We spared no expense"

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