For циклы . Тизмелер жана саптар өтүү
Тизмелер жана саптар өтүү
for цикли биз көргөн иреттелген коллекциялар list жана str боюнча кайталоо үчүн кеңири колдонулат. Бул сабакта биз тизмелерди жана саптарды for циклин колдонуп кантип итерациялоону үйрөнөбүз. Биз муну эки жол менен кыла алабыз:
1.Коллекциянын элементтерин маани боюнча өтүү
2.Коллекциянын элементтерин индекс боюнча өтүү (сериялык номер)
For циклиндеги маани боюнча коллекцияны өтүү
Келгиле, бир нече сандардын тизмесин түзөлү жана аларды кайталоо үчүн for циклин колдонолу, бардыгы биз range менен жасаганга абдан окшош
@A@a = [43, 65, 3, 54, 6]
for i in a:
print(i)@A@
@T@43
65
3
54
6@T@
for цикли тизмедеги ар бир маанини өз кезегинде i ге ыйгарып бүттү.
Эгерде биздин тизменин ар бир элементин, айталы, 5ке көбөйтүү керек болсо, анда биринчи ой өзгөрүлмөбүздү төмөнкүдөй 5ке көбөйтүү керек:
@A@a = [43, 65, 3, 54, 6]
for i in a:
i += 5
print(i, end=' ')
print()
print(a)@A@
@T@48 70 8 59 11
[43, 65, 3, 54, 6]@T@
Көрүнүп тургандай, ар бир жолу i өзгөрмө 5ке көбөйгөнүнө карабастан, тизме эч кандай өзгөргөн жок. Бул i өзгөрмөсүндө бул маанинин дубликаты гана сакталып калгандыгына байланыштуу жана ушундан улам көчүрмө тизмеден түпнускага эч кандай таасир этпейт. Мындан келип чыгат, мындай өтүүдө тизменин мааниси i өзгөрмөсүндө сакталат, ал эми элементтин өзүн бул өзгөрмө аркылуу сактоо мүмкүн эмес.
@A@a = [43, 65, 3, 54, 6]
for i in range(5):
print(i, a[i])@A@
@T@0 43
1 65
2 3
3 54
4 6@T@
range() функциясында тизменин узундугуна барабар санды көрсөтүү жакшы. Тизменин узундугу өзүнчө өзгөрмөдө көрсөтүлүшү мүмкүн же түздөн-түз range() функциясында колдонулушу мүмкүн. Тизмеде канча нерсе болсо да, төмөнкү код иштейт:
@A@a = [43, 65, 3, 54, 6]
b = len(a)
for i in range(b):
print(i, a[i])@A@
@T@0 43
1 65
2 3
3 54
4 6@T@
Бул убактылуу чечүү менен сиз экинчи катадан да арыла аласыз - тизменин элементтерин өзгөртүү мүмкүн эмес.
Тизмедеги ар бир өзгөрмөнү дагы 5ке көбөйтөлү:
@A@a = [43, 65, 3, 43]
b = len(a)
for i in range(b):
a[i] += 5
print(a)@A@
@T@[48, 70, 8, 48]@T@
Натыйжада, бул өтүү опциясы менен бизде элементтин индексине да, анын маанисине да кирүү мүмкүнчүлүгү бар, бирок мааниге анын индекси аркылуу кирүү керек. Бул учурда, зарыл болсо, тизменин элементтерин өзгөртө алабыз.
Мындан индексти өтүү баалуулуктарды өтүүгө караганда ар тараптуу болот, ошондуктан ага артыкчылык берилет.