fb pixel

Python-ի ներածություն

  • Profound Academy

    • Status
      • 1
        Մուտք և Ելք
      • 2
        Փոփոխականներ և ամբողջ թվեր
      • 3
        Պայմաններ
      • 4
        Ներդրված պայմաններ
      • 5
        Փոփոխականներ և տիպեր
      • 6
        Տողեր
      • 7
        Զանգվածներ
      • 8
        For ցիկլեր
      • 9
        While ցիկլեր
      • 10
        continue, break, while...else
      • 11
        Տողերի և զանգվածների հետ աշխատանք
      • 12
        Ներդրված ցիկլեր
      • 13
        List Comprehension
      • 14
        Tuple-ներ և Set-եր
      • 15
        dict
      • 16
        Ֆունկցիաներ
      • 17
        Ֆունկցիաներ 2
      • 18
        Lambda and higher-order functions
      • 19
        Files

  • Սեփական higher-order ֆունկցիաներ

    Ֆունկցիաները, ինչպիսիք են sort, max կամ min-ը, կարող են ընդունել այնպիսի արգումենտներ, ինչպիսիք են key=-ն, որոնք ֆունկցիաներ են և կարող են փոփոխել դրանց վարքը: Սա դարձնում է ներկառուցված ֆունկցիաները՝ sort-ը և max-ը ավելի հզոր և ընդհանուր: Դրանք կարող են օգտագործվել շատ ավելի շատ սցենարներում, քան եթե նրանք համեմատեն արժեքները միայն առանց key= արգումենտի:
    Մենք կարող ենք նաև ստեղծել մեր սեփական higher-order ֆունկցիաները:
    def modify(numbers, f):
    	res = [f(n) for n in numbers]
    	return res
    
    print(modify([1, 2, 3], lambda x: x**2))   # [1, 4, 9]
    print(modify([1, 2, 3], lambda x: -x))     # [-1, -2, -3]
    print(modify([2, 0, 1], lambda x: 2 * x))  # [4, 0, 2]
    print(modify([2, 0, 1], str)               # ['2', '0', '1']
    Այստեղ մենք փոխանցում ենք տարբեր ֆունկցիաներ որպես f ավելի բարձր կարգի modify ֆունկցիային: modify ֆունկցիան մուտքում ստացած ցուցակից ստեղծում է նոր ցուցակ և վերադարձնում է արդյունքը: Նկատի ունեցեք, որ մենք կարող ենք նույնիսկ str-ի նման ֆունկցիա փոխանցել ֆունկցիային: Այսպիսով, մուտքագրման ցանկի յուրաքանչյուր տարրի վրա կկիրառվի str() ֆունկցիա՝ str(2), str(0), str(1):

    Առաջադրանք

    Գրեք գումարի ֆունկցիայի ընդհանուր տարբերակը, որը կոչվում է generic_sum, որը որպես առաջին արգումենտ կընդունի հավաքածուն (դա կարող է լինել զանգված, set կամ tuple-ների զանգված) և ֆունկցիա՝ որպես երկրորդ արգումենտ, որը ստանալով մի էլեմենտ, վերադարձնում է դրան համապատասխան թիվ (տե՛ս օրինակը)։
    def generic_sum():
    	...
    
    print(generic_sum([1, 2, 3], lambda x: x))                   # 6
    print(generic_sum({1, 2, 3}, lambda x: x))                   # 6
    print(generic_sum([(1, 3), (4, 6)], lambda x: x[0] + x[1]))  # 14
     
    To check your solution you need to sign in
    Sign in to continue