Python - Տպել ընդհանուր տարրերը բոլոր ենթացանկերում
Python լեզուն հիմնականում կազմված է տվյալների տարբեր կառուցվածքներից, և դրանից ամենից շատ օգտագործվողը ցուցակի տվյալների կառուցվածքն է: Ցանկերը կարող են պարունակել տվյալների տարբեր տեսակների տարրեր, և երբ դրանց վերագրվում են որոշ արժեքներ, դրանք չեն կարող փոխվել: Ցանկերը կարող են նույնիսկ այլ ցուցակներ պահել «[]» քառակուսի փակագծերում: Երբ երկու ցուցակ է սահմանվում ինչ-որ հարթակում աշխատելու համար, նրանց միջև կարող են լինել որոշակի հարաբերություններ, և այս կոդը օգտագործելով Python ծրագիրը հնարավոր է դարձնում:
Ընդհանուր տարրերի տպագրում ենթացանկում
Ենթադրենք, որ ցուցակը պարունակում է 10 տարր, և այն կարող է ներկայացվել նաև ենթացանկերի տեսքով, ինչպիսիք են 3 տարրերը մեկ ենթացանկում, իսկ մնացած յոթ տարրերը մեկ այլ ենթացանկում:
Շարահյուսություն
list1 = [[1, 2, 3], [4, 5, 6, 7, 8, 9, 10]]
Հիմնական շարահյուսությունը պարունակում է ցուցակի տվյալների կառուցվածքը ենթացանկերի հետ միասին:
Մոտեցում
Մոտեցում 1 – Օգտագործելով ռեկուրսիվ ֆունկցիա
Մոտեցում 2 - Օգտագործելով կրճատման գործառույթը
Մոտեցում 3 - Օգտագործելով կրկնության մեթոդը
Մոտեցում 1. Python ծրագիր՝ բոլոր ենթացուցակներում ընդհանուր տարրեր տպելու համար՝ օգտագործելով ռեկուրսիվ ֆունկցիա
Ցանկի ենթացանկերից ընդհանուր տարրերը տպվում են ռեկուրսիվ ֆունկցիայի օգնությամբ, որը ֆունկցիան իրեն անվանում է ռեկուրսիվ։
Ալգորիթմ
Քայլ 1 − Ստեղծեք common_elements ֆունկցիան():
Քայլ 2 - Երբ ցուցակի երկարությունը հավասար է 1-ի, այն սահմանում է ցուցակի առաջին տարրը:
Քայլ 3 − Հակառակ դեպքում, այն սահմանում է հատման ֆունկցիան, որպեսզի համապատասխանի ենթացուցակներին՝ ընդհանուր տարրը գտնելու համար՝ օգտագործելով կտրման մեթոդը:
Քայլ 3 - Այն վերադարձնում է հայտարարությունը ընդհանուր տարրերով:
Օրինակ
#function is defined with a list argument
def common_elements(list1):
if len(list1) == 1:
return set(list1[0])
else:
return set(list1[0]).intersection(common_elements(list1[1:]))
#initializing the sublist inside the list data structure
list1 = [[2,3,4,5], [2,5], [2,10,5], [2,8,5,6], [2,10,9,5]]
common_elements = common_elements(list1)
#the length of the list should be greater than 0
if len(common_elements)>0:
print("The common elements in the given sublists is:",common_elements)
else:
print("The given list does not contain common elements! ")
Արդյունք
The common elements in the given sublist is: {2, 5}
Մոտեցում 2. Python ծրագիր՝ բոլոր ենթացանկերում ընդհանուր տարրեր տպելու համար՝ օգտագործելով կրճատման գործառույթը
Առանց բարդ քայլերի ընդհանուր տարրերը տպելու մեթոդի մեջ ֆունկցիոնալ գործիքների մոդուլը ներմուծվում է՝ նվազեցնելու ֆունկցիան օգտագործելու համար:
Ալգորիթմ
Քայլ 1 - Ներմուծեք պահանջվող մոդուլը:
Քայլ 2 − Ցանկի տվյալների կառուցվածքը սկզբնավորվում է ենթացուցակներով՝ գտնելու դրանց միջև ընդհանուր տարրերը:
Քայլ 3 - Այս խնդրի հիմքում ընկած առաջնային գործառույթը ձեռք է բերվում կրճատման և հատման գործառույթների միջոցով:
-
Քայլ 4 - Քարտեզի ֆունկցիան պարզապես քարտեզագրում է տարրերը և յուրաքանչյուր ենթացանկը վերածում է մի շարքի:
Քայլ 5 − Կախված սահմանված մուտքագրից, տպագիր հայտարարությունը կվերադարձնի ենթացանկերի ընդհանուր տարրերը:
Օրինակ
#importing the module
from functools import reduce
#initializing the sublist inside the list data structure
list1 = [[2,3,4,5], [2,5], [2,10,5], [2,8,5,6], [2,10,9,5]]
#with the help of the intersection function to match the elements among sublists
common_elements = reduce(set.intersection,map(set,list1))
#the length of the list should be greater than 0
if len(common_elements)>0:
print("The common elements in the given sublists is:",common_elements)
else:
print("The given list does not contain common elements! ")
Արդյունք
The common elements in the given sublist is: {2, 5}
Մոտեցում 3. Python ծրագիր՝ ընդհանուր տարրեր տպելու համար՝ օգտագործելով for loop iteration մեթոդը
Ցուցակների միջոցով կրկնությունը ստիպում է ելքը տպել ենթացանկերի միջև ընդհանուր տարրերի բոլոր հնարավորությունները:
Ալգորիթմ
Քայլ 1 − Մեկ ցուցակի արգումենտով ֆունկցիայի ստեղծում:
Քայլ 2 − Այնուհետև ստեղծեք դատարկ հավաքածու և զանգվածի առաջին տարրը վերցրեք որպես list1[0]:
Քայլ 3 − Օգտագործեք ցիկլը կրկնության համար:
Քայլ 4 − Ստուգեք պայմանը՝ արդյոք երկարությունը զրոյից մեծ է, թե ոչ։
Քայլ 5 - կանչեք common_element ֆունկցիան, և ելքային հայտարարությունը տպագրվում է:
Օրինակ
#defining the function with one list argument
def common_element(list1):
#creating an empty set and taking the first element of the array
reference_set=set(list1[0])
#for is used to iterate through the given list
for num in range(1,len(list1)):
#Adding the common element from the list to the created set
fresh_set=set(tuple(list1[num]))
reference_set&=fresh_set
#To check whether the length of the list greater than 0
if len(reference_set) > 0:
print("The common elements in the given sublists is:",reference_set)
else:
print("The given list does not contain common elements! ")
#initializing the list of sublists
list1 = [[11,3,12,5], [12,11], [12,11,5], [12,11,5,6], [12,11,9,5]]
#calling the function to print the common elements
common_element(list1)
Արդյունք
The common elements in the given sublist is: {11, 12}
Եզրակացություն
Ենթացանկի ընդհանուր տարրերը գտնելու համար պետք է իմանալ, թե ինչպես է նշանակվում ենթացանկը և դրա հիմնական կառուցվածքը: Ցանկերը պարունակում են տարրեր, որոնք բաժանված են ընդհանուրով քառակուսի փակագծերում: Մոտեցումները բացատրվում են ցուցակի ենթացանկերում ընդհանուր տարրերը տպելու համար՝ օգտագործելով մոդուլները, ռեկուրսիվ ֆունկցիան և պարզ կրկնման մեթոդը: