Python - Բազմապատկել ամբողջ թիվը տողերի և թվերի խառը ցուցակում


Python-ը ճկուն ծրագրավորման լեզու է, որը հայտնի է իր հեշտությամբ և հարմարվողականությամբ: Այն տալիս է ներկառուցված հզորությունների և տվյալների տեսակների լայն տեսականի, որոնք հեշտացնում են տարբեր գործողություններ կատարելը: Python-ի ծրագրավորման ընդհանուր առաջադրանքներից մեկը տողերի և թվերի խառը ցուցակում ինտեգրելիության բարձրացումն է: Այս հոդվածում մենք կուսումնասիրենք այս նպատակին հասնելու երեք տարբեր մոտեցումներ՝ քայլ առ քայլ պարզաբանումների և գործի կոդերի հետ միասին: Մենք նույնպես կանդրադառնանք Python-ի կենսական շարահյուսությանը յուրաքանչյուր մոտեցման համար:

Ամբողջ թվերի բազմապատկում խառը տողերով

Python-ում տողերի և թվերի խառը ցուցակով կառավարելիս ամբողջ թվով տարրերը բազմապատկելը, մինչդեռ տողերը անփոփոխ մաքրելը հատուկ ուշադրություն է պահանջում: Մոտեցումներից մեկը ներառում է ցուցակի մեջ կրկնելը, յուրաքանչյուր բաղադրիչի տեսակը ստուգելը և ամբողջ թվերը ցանկալի թվով բազմապատկելը: Մեկ այլ մոտեցում զբաղվածության ցուցակի ըմբռնում և պայմանական արտահայտություն՝ ճշգրտված տարրերով ժամանակակից ցուցակ կազմելու համար: Նաև, ծրագրավորման օգտակար տեխնիկան կարող է կիրառվել՝ օգտագործելով lambda ֆունկցիան և «map()» ֆունկցիան՝ ամբողջ թվերը կրկնօրինակելու համար: Այս մոտեցումները տալիս են հարմարվող լուծումներ՝ խառը ցուցակի ներսում թվերի բաղադրիչների վրա անհրաժեշտ բազմապատկման գործողությունը կատարելու համար:

Մոտեցում 1. Կրկնություն և տիպի ստուգում

Առաջնային մոտեցումը ներառում է ցանկի մեջ գտնվող բաղադրիչների կրկնությունը և ստուգելը, որ յուրաքանչյուր բաղադրիչ մի թիվ է: Այն դեպքում, մենք այն բազմապատկում ենք գործող տարրով։

Ալգորիթմ

  • Կազմեք «multiply_integers» անունով ֆունկցիա, որն ընդունում է ցուցակը որպես արգումենտ

  • Նախաձեռնեք «արդյունք» անունով դատարկ ցուցակ՝ փոփոխված բաղադրիչները պահելու համար

  • Կրկնել յուրաքանչյուր բաղադրիչի միջով մուտքագրման ցանկում՝ օգտագործելով «for» հանգույցը:

  • Ստուգեք, արդյոք ընթացիկ բաղադրիչը «int» դասի առաջացում է՝ օգտագործելով «isinstance()» ֆունկցիան:

  • Եթե բաղադրիչը ամբողջ թիվ է, ավելացրեք այն 2-ով և արդյունքը կցեք «արդյունք» ցանկին

  • Եթե բաղադրիչը ամբողջ թիվ չէ, ավելացրեք այն, քանի որ այն գտնվում է «արդյունք» ցանկում

  • Վերադարձեք «արդյունքների» ցուցակը:

  • Որպես վիճաբանություն, կանչեք «multiply_integers» ֆունկցիան՝ փորձնական խառը ցուցակով:

  • Տպեք վերադարձված ցուցակը:

Օրինակ

def multiply_integers_in_list(lst):
    product = 1
    for element in lst:
        if isinstance(element, int):
            product *= element
    return product

my_list = [2, 53, '478', 50, '666', 17, 'xyz']
result = multiply_integers_in_list(my_list)
print(result)

Արդյունք

90100

Մոտեցում 2.  Ցանկի ըմբռնման օգտագործում

Երկրորդ մոտեցումը օգտագործում է Python-ում ցուցակի ընկալման վերահսկումը: Ցանկի ըմբռնումը հնարավորություն է տալիս գոյություն ունեցող ցուցակների հիման վրա ցուցակներ կազմելու հակիրճ ձևով. Ահա այն քայլերը, որոնք պետք է ձեռնարկվեն հետո.

Ալգորիթմ

  • Կազմեք «multiply_integers» անունով ֆունկցիա, որը մուտքագրում է ցուցակը

  • Օգտագործեք ցուցակի ըմբռնում, որպեսզի կրկնեք յուրաքանչյուր տարրի վրա մուտքագրման ցանկում:

  • Ցանկի ըմբռնման շրջանակներում օգտագործեք պայմանական արտահայտություն՝ ստուգելու համար, որ բաղադրիչը թիվ է:

  • Այն դեպքում, երբ բաղադրիչը ամբողջ թիվ է, ավելացրեք այն 2-ով; ուրիշ բան, անփոփոխ պահիր։

  • Վերադարձեք ցուցակը:

  • Զանգահարեք «multiply_integers» ֆունկցիան փորձարկման խառը ցուցակով:

  • Տպեք վերադարձված ցուցակը

Օրինակ

from functools import reduce
import operator

def multiply_integers_in_list(lst):
    new_list = [element for element in lst if isinstance(element, int)]
    product = reduce(operator.mul, new_list, 1)
    return product

my_list = [25, 93, '74', 54, '6', 7, 'abc']
result = multiply_integers_in_list(my_list)
print(result)

Արդյունք

878850

Մոտեցում 3.  Օգտագործելով զտիչ() և լամբդա ֆունկցիաները

Երրորդ մոտեցումը օգտագործում է filter() ֆունկցիան լամբդա ֆունկցիայի հետ համատեղ: Filter() ֆունկցիան կրկնում է կրկնվողի բաղադրիչներից, որոնց համար տվյալ ֆունկցիան վերադարձնում է true: Ահա թե ինչպես մենք կօգտագործենք այս մոտեցումը.

Ալգորիթմ

  • Կազմեք լամբդա ֆունկցիա, որն ընդունում է բաղադրիչը որպես մուտքագրում և այն բազմապատկում է 2-ով, եթե դա թիվ է։ այլ բան, բաղադրիչը վերադարձնում է անփոփոխ:

  • Կազմեք «multiply_integers» կոչվող ֆունկցիա, որն ընդունում է ցուցակը որպես վիճաբանություն

  • Օգտագործեք «map()» ֆունկցիան lambda ֆունկցիայի կողքին՝ ցանկի յուրաքանչյուր բաղադրիչի վրա կիրառելու մեծացման գործողությունը:

  • Փոխեք «քարտեզ()»-ի արդյունքը դեպի ցուցակ՝ օգտագործելով «list()» գործառույթը:

  • Վերադարձեք ցուցակը:

  • Զանգահարեք «multiply_integers» ֆունկցիան փորձարկման խառը ցուցակով:

  • Տպեք վերադարձված ցուցակը:

Օրինակ

from functools import reduce
import operator

def multiply_integers_in_list(lst):
    integers = filter(lambda x: isinstance(x, int), lst)
    product = reduce(operator.mul, integers, 1)
    return product

my_list = [5, 2, 'abc', 3, '6', 'pqr']
result = multiply_integers_in_list(my_list)
print(result)

Արդյունք

30

Եզրակացություն

Այս հոդվածում մենք ուսումնասիրեցինք Python-ի օգտագործմամբ ամբողջ թվերը բազմապատկելու երեք տարբերակիչ մոտեցումներ տողերի և թվերի խառը ցուցակում: Մենք ուսումնասիրեցինք քայլ առ քայլ բռնակը և յուրաքանչյուր մոտեցման համար տվեցինք նկարազարդման ծածկագիր: Առաջնային մոտեցումը ներառում էր ցանկի միջով կրկնվող հանգույցի օգտագործումը, մինչդեռ երկրորդ և երրորդ մոտեցումներն օգտագործում էին ցուցակի ընկալումը և զտիչ() ֆունկցիան՝ առանձին լամբդա ֆունկցիայով: Հասկանալով այս մոտեցումները՝ դուք հաջողությամբ կհասկանաք համեմատական խնդիրները ձեր Python նախագծերում: