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}

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

Ենթացանկի ընդհանուր տարրերը գտնելու համար պետք է իմանալ, թե ինչպես է նշանակվում ենթացանկը և դրա հիմնական կառուցվածքը: Ցանկերը պարունակում են տարրեր, որոնք բաժանված են ընդհանուրով քառակուսի փակագծերում: Մոտեցումները բացատրվում են ցուցակի ենթացանկերում ընդհանուր տարրերը տպելու համար՝ օգտագործելով մոդուլները, ռեկուրսիվ ֆունկցիան և պարզ կրկնման մեթոդը: