Երբ գործ ունենք երկչափ ցուցակների հետ, հնարավոր է նաև անցնել օբյեկտների վրայով 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 և այլն: Տողերը տպեք առանձին-առանձին: