Երբ գործ ունենք երկչափ զանգվածների հետ, հնարավոր է նաև անցնել օբյեկտների վրայով list comprehension-ի միջոցով:
grid = [
[10, 20, 30],
[40, 50, 60],
]
squared = [[i * i for i in row] for row in grid]
print(squared)
# [[100, 400, 900], [1600, 2500, 3600]]
Այստեղ արտաքին ցիկլը անցնում է grid-ի վրայով տող առ տող: Այնուհետև մենք անցնում ենք տողի յուրաքանչյուր տարրի վրայով:
Եթե կարիք կա squared-ը ստանալ որպես միաչափ ցուցակ/զանգված, այլ ոչ երկչափ, այդ դեպքում կարող ենք դա ստանալ սկզբից անցնելով grid-ի վրայով for row in grid-ի միջոցով, իսկ ապա տողի ամեն էլեմենտի վրայով for i in row-ի միջոցով և չունենալ ներքին փակագծեր [].
grid = [
[10, 20, 30],
[40, 50, 60],
]
squared = [i * i for row in grid for i in row]
print(squared)
# [100, 400, 900, 1600, 2500, 3600]
Առաջադրանք
Կարո՞ղ եք օգտագործել list comprehension-ը շախմատի տախտակի բոլոր կոորդինատները տպելու համար:
Թվերը գնում են 1-ից մինչև 8, իսկ տառերն են՝ A B C D E F G H: Համարակալումը կատարվում է A1 B1 C1 ... H1 հաջորդ տողն է՝ A2 B2 C2 ... H2 և այլն: Տպեք յուրաքանչյուր տող առանձին: