Զանգվածները և zip ֆունկցիան

Python–ի ամենամեծ առավելություններից մեկն այն է, որ տրամադրում է մեծ թվով գործիքներ Python-ում եղած տիպերի հետ աշխատելու համար։ Մի քանի զանգվածի հետ աշխատելիս հաճախ անհրաժեշտ է լինում միանգամից մի քանիսի վրայով անցնել և ինչ-որ գործողություն կատարել այդ զանգվածներում գտնվող արժեքների հետ։ Մի քանի զանգվածի վրայով միաժամանակ անցնելու համար կարելի է օգտագործել zip ֆունկցիան.
heights = [180, 190, 178]
weights = [89, 92, 77]

for i in range(len(heights)):
	h, w = heights[i], weights[i]
	print(h, '=>', w)
heights = [180, 190, 178]
weights = [89, 92, 77]

for h, w in zip(heights, weights):
	print(h, '=>', w)
zip ֆունկցիան մի քանի զանգվածներից ստեղծում է tuple-ների զանգված։ Այն կարող է կամայական քանակի զանգվածներ ընդունել որպես պարամետր, որի միջոցով մենք կարող ենք ունենալ zip(list1, list2, list3, ..., listn)-ի նման արտահայտություններ։ Այստեղ ծրագիրը կստեղծի tuple-ներ, որոնք պարունակում են n թվով էլեմենտներ, եթե zip-ին փոխանցվել է n թվով զանգված։
Հաշվի առեք, որ zip-ն աշխատում է մինչև ամենակարճ զանգվածը։ Այսպիսով, եթե մենք zip-ին փոխանցենք երկու զանգված, որտեղ մեկը մյուսից կարճ է, երկար զանգվածի վերջին մի քանի էլեմենտները կանտեսվեն։
Եթե ցանկանում ենք թույլ չտալ, որ ավելի երկար զանգվածից էլեմենտներ դուրս մնան, կարող ենք անել դա strict=True արգումենտի միջոցով։ Եթե սխալ չափի զանգվածներ փոխանցված լինեն, Python-ը կասի, որ մենք ունենք ValueError։
notion image
heights = [180, 190]
names = ['Bob', 'Liza', 'Anna']

for h, name in zip(heights, names, strict=True):
	print(name, '=>', h)
# ValueError: zip() argument 2 is longer than argument 1

Առաջադրանք

Մուտքում տրված է 3 զանգված՝ ամեն մեկն առանձին տողի վրա։ Զանգվածի էլեմենտներն առանձնացված են բացատով։ Հայտնի է, որ բոլոր զանգվածներն ունեն նույն քանակի էլեմենտներ։
Ծրագիրը պետք է տպի նոր զանգված, որը պարունակի նույն ինդեքսներում զանգվածների էլեմենտների արտադրյալը։
Մուտք
Ելք
1 2 3 4 5 6 1 1 1
4 10 18
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue