Python – kth սյունակի արտադրյալը ցուցակների ցանկում


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

Այս հոդվածում սյունակի տարրը բազմապատկելու գործընթացն ու ավելի լավ հասկանալու համար բերենք մեկ օրինակ: Ցանկը բաղկացած է երեք ենթացանկից և յուրաքանչյուրը պարունակում է երեք տարր: Ծրագրավորողը որոշում է արտադրել բոլոր տարրերը 2-ի ինդեքսի արժեքով, որը յուրաքանչյուր ցուցակի վերջին տարրն է:

List = [[1, 2, 3],
	[4, 5, 6],
	[7, 8, 9]]

Երկրորդ ինդեքսի տարրը, որը 3*6*9=162 է, բազմապատկելու համար վերադարձվում է արտադրյալը: Նույն կերպ Python ծրագրերը կատարում են ֆունկցիոնալությունները՝ օգտագործելով տարբեր մոտեցումներ՝ դրանով իսկ բարձրացնելով արդյունավետությունը և կրճատելով ժամանակը։

Մոտեցում

  • Մոտեցում 1 - Օգտագործելով for հանգույցը

  • Մոտեցում 2 - Օգտագործելով նվազեցման մեթոդը

Մոտեցում 1. Python ծրագիր, որն արտադրում է k-րդ սյունակը ցուցակների ցուցակներում, օգտագործելով for հանգույցը

For օղակը կկրկնվի տարրերի տվյալ ցանկի միջով և կգտնի ցուցակների ցուցակների նշված ինդեքսի արժեքի արտադրյալը:

Ալգորիթմ

  • Քայլ 1 - Ֆունկցիան սահմանվում է երկու արգումենտով

  • Քայլ 2 − Օգտագործելով isinstance(), մենք կարող ենք ստուգել՝ տվյալ մուտքագրումը առկա է ցանկում, թե ոչ։

  • Քայլ 3 − Ստորև բերված կոդում այն նշված է որպես 2, ուստի արդյունքը տպագրվում է, իսկ մյուս կողմից, երբ նշվում է 2-ից ավելի արժեքը, այն կատարում է վերադարձի հայտարարությունը:

  • Քայլ 4 − Այնուհետև ստուգում է, թե արդյոք երեք տողերը, որոնք երեք ցուցակ են, ունեն բավարար և հավասար սյունակ:

  • Քայլ 5 - Օգտագործելով for օղակը, արտադրանքի արժեքը հաշվարկվում և պահվում է «արդյունք» անունով փոփոխականում:

  • Քայլ 6 - Ցանկը սկզբնավորվում է ամբողջ թվերով և երեք ենթացանկերով:

  • Քայլ 7 - Վերջնական արդյունքը տպագրվում է:

Օրինակ

#function is defined with two parameters
def product_cols(lst,cols_val):
    #To check whether the input is in the given list
    if not isinstance(lst,list):
        raise Exception(f"object {type(file)} isn't list type")
    
    #if loop is used to check whether all column and indexes are correct
    for a,row in enumerate(lst,start=1):
        try:
            temp=row[cols_val]
        except IndexError:
            raise Exception(f"{str(a)}th given values is not within the limit{str(cols_val)}.")           
              
    # The product is calculated using for loop
    result = 1
    for each_row in lst:
        result *= each_row[cols_val]
        
    return result
#initializing the list element
list1 = [[1, 2, 3], 
           [4, 5, 6], 
           [7, 8, 9]]
#The final output is printed for the elements in index value of 2
print(product_cols(list1, 2))

Արդյունք

162

Մոտեցում 2. Python ծրագիր, որն արտադրում է k-րդ սյունակը ցուցակների ցուցակներում՝ օգտագործելով reduce() մեթոդը

Գործընթացը կարող է թվալ պարզ, բայց ծրագիրը նվազեցնելու մեթոդի կիրառումը հոգնեցուցիչ է: Պահանջվող մոդուլները ներմուծվում են և կախված ծրագրին տրված մուտքային արժեքից՝ գործարկվում է:

Ալգորիթմ

  • Քայլ 1 - Պահանջվող մոդուլները ներմուծվում են՝ նվազեցնելու և օպերատորի գործառույթներն օգտագործելու համար:

  • Քայլ 2 − Ֆունկցիան սահմանվում է երկու պարամետրով՝ որպես ցանկի ցուցակներ և սյունակի ինդեքսի արժեք:

  • Քայլ 3 − Մուտքը ստուգվում է՝ արդյոք առկա է տվյալ ցանկում

  • Քայլ 4 − Այնուհետև տողերը ստուգվում են, թե արդյոք այն պատշաճ կերպով պարունակում է սյունակի բոլոր տարրերը:

  • Քայլ 5 - Կրճատման ֆունկցիայի օգնությամբ հաշվարկվում է ցուցակների արտադրյալը և վերադարձվում print() ֆունկցիայի միջոցով:

Օրինակ

#importing the module to use reduce function
from functools import reduce
#importing the operator
import operator
#defining the function with two parameters
def product_cols(lst,cols_val):
#To check whether the input is in the given list
    if not isinstance(lst,list):
        raise Exception(f"object {type(file)} isn't list type")
    
    #if loop is used to check whether all column and indexes are correct
    for a,row in enumerate(lst,start=1):
        try:
            temp=row[cols_val]
        except IndexError:
            raise Exception(f"{str(a)}the given values is not within the limit{str(cols_val)}.")           
              
    return reduce(operator.mul,[each_row[cols_val] for each_row in lst])
#initializing the list with set of sublists
list1 = [[1, 2, 3], 
           [4, 5, 6], 
           [7, 8, 9]]
#Finally printing the list after the multiplication
print(product_cols(list1, 2))

Արդյունք

162

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

Python-ը մտնում է բարձր մակարդակի լեզվի ներքո, և Python-ի հետ աշխատող մարդիկ կարող են խնդրի լուծումներ գտնել՝ օգտագործելով պարզ հասկացություններն ու գործառույթները: Լեզուն կազմված է տվյալների մի քանի կառուցվածքներից և ցուցակից ամենատարածվածն է: kth սյունակի արտադրյալը տպելու տարբեր մոտեցումներ տրված են՝ օգտագործելով functools մոդուլը և for loop մեթոդը: