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 մեթոդը: