Қысқаша теориялық мәлімет
Көптеген бағдарламалар жеке айнымалы, және айнымалы жиынтығымен жұмыс істемейді. Мұндай деректерді сақтау үшін деректер құрылымын пайдалануға болады (пайдаланылатын басқа да көптеген, термин «жиым» бағдарламалау тілі) бір Python тізімін деп аталады. Тізімі, 0-ден нөмірленген, жолдың рәміздер элементтердің жүйелілігі болып табылады. Сіз төмендегідей мысалы, тізім орнатуға болады, тік жақшада элементтердің аудару тізіміне тізімін көрсетуге болады:
Primes = [2, 3, 5, 7, 11, 13]
Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']
В списке Primes — 6 элементов, а именно: Primes[0]==2, Primes[1] == 3, Primes[2] ==5, Primes[3] == 7, Primes[4] == 11, Primes[5] == 13.
Rainbow тізімі 7 элементтен тұрады, олардың әрқайсысы жол.
Жолдағы таңбалар сияқты, тізім элементтері соңынан теріс сандармен индекстелуі мүмкін, мысалы: Primes [-1] == 13, Primes [-6] == 2.
Тізімнің ұзындығы, яғни оның элементтерінің саны len () функциясымен, мысалы, l en (Primes) == 6 арқылы білуге болады.
Жолдардан айырмашылығы, тізім элементтерін өзгертуге болады, оларға жаңа мәндерді тағайындау.
Мысал 1. Тізім элементтерін ауыстыруRainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']
print(Rainbow[0])
Rainbow[0] = 'красный'
print('Выведем радугу')
for i in range(len(Rainbow)):
print(Rainbow[i])
Тізімдерді жасау мен оқудың бірнеше жолын қарастырайық. Ең алдымен, сіз бос тізім жасай аласыз (құрамында элементтер жоқ, ұзындығы 0) және тізімнің соңында қосымшаны қосу әдісі арқылы элементтерді қосуға болады. Мысалы, бағдарлама n тізіміндегі элементтер санының енгізілуін, ал содан кейін тізімдегі n элементтерін бөлек жолда бірдей алыңыз. Мұнда осы форматта кіріс деректерінің мысалы келтірілген
5
1809
1854
1860
1891
1925
Бұл жағдайда тізімді оқуды келесідей ұйымдастыруға болады:
Мысал 2. Элементтерді тізімге қосу
a = [ ] # бос тізімді енгіземіз
n = int(input()) # тізімдегі элемент санын енгіземіз
for i in range(n):
new_element = int(input()) # келесі элементті енгіземіз
a.append(new_element) # оны тізіме қосамыз
print(a)
Бұл мысалда бос тізім жасалады, одан кейін тізімдегі элементтер саны оқылады, содан кейін бір тізім элементі бір уақытта оқылады және оның соңына қосылады. N айнымалысын сақтау арқылы жазылуы мүмкін:
a = [ ]
for i in range(int(input())):
a.append(int(input()))
print(a)
Тізімдер үшін келесі әрекеттер толығымен анықталған: тізімдерді біріктіру (тізімдерді қосу, басқалардың тізімін тағайындау) және қайталанатын тізімдер (тізімді санға көбейту).
3-мысал. Тізімді біріктіру
a = [1, 2, 3]
b = [4, 5]
c = a + b
d = b * 3
print([7, 8] + [9])
print([0, 1] * 3)
Нәтижесінде c тізімі [1, 2, 3, 4, 5] болады және d тізімі [4, 5, 4, 5, 4, 5] болады. Бұл тізімдерді басқа жолмен оқу процесін ұйымдастыруға мүмкіндік береді: алдымен тізімнің өлшемін қарастырып, қажетті элементтердің тізімін жасаңыз, содан кейін 0 санынан бастап айнымалы i циклын ұйымдастырыңыз және тізбектің i-ші элементі цикл ішінде оқылады:
a = [0] * int(input())
for i in range(len(a)):
a[i] = int(input())
Тізім элементін тізім элементінің төртбұрыш жақшаларымен және тізім элементтері арасында үтірлермен бірге басып шығаруға болады (a). Мұндай қорытынды ыңғайсыз, жиі бір жолда немесе тізімдегі бір элементтің барлық тізім элементтерін шығару қажет. Міне, екі мысал, сонымен қатар, цикл ұйымдастыру:
Мысал 4. Тізім элементтерінің индексі бойынша тізімі
a = [1, 2, 3, 4, 5]
for i in range(len(a)):
print(a[i])
Мұнда i элементінің индексі циклде өзгереді, одан кейін i индексі бар тізім элементі шығады.
Мысал 5. Элементтерді тізімге енгізіңіз
a = [1, 2, 3, 4, 5]
for elem in a:
print(elem, end=' ')
Бұл мысалда тізім элементтері бос орынмен бөлінген бір жолда көрсетіледі. Бұл жағдайда тізбе элементінің индексі циклде өзгермейді және айнымалы мәннің мәні (мысалы, «қызыл», «жасыл», «көк» элемент үшін циклде айнымалы элемент дәйекті «қызыл» мәндерін қабылдайды, «жасыл», «көк».
Соңғы мысалға ерекше назар аударыңыз! Python идеологиясының өте маңызды бөлігі - кез-келген жүйенің барлық элементтерін сұрыптаудың ыңғайлы әдісін беретін цикл. Бұл Python мен Pascal арасындағы айырмашылық, онда элементтердің өздері емес, элементтердің көрсеткіштері бойынша сұрыптау керек.
Python жүйесінде тізімдер, тізімдер, функция ауқымының мәндері (бұл тізімдер емес) және кейбір басқа нысандар.
Мұнда барлық сандар жолдан таңдалатын және массивке сандар ретінде қосылатын жағдайдағы 'for' циклын пайдалануды көрсететін мысал.
Мысал 6.
# дано: s = 'ab12c59p7dq'
# надо: извлечь цифры в список digits,
# чтобы стало так:
# digits == [1, 2, 5, 9, 7]
s = 'ab12c59p7dq'
digits = []
for sym in s:
if '1234567890'.find(symbol) != -1:
digits.append(int(symbol))
print(digits)
2. «Бөлу» және «қосылу» әдістері
Тізімнің элементтерін бір жолға бір жолмен енгізуге болады, бұл жағдайда бүкіл жол кіріс () функциясы ретінде қарастырылуы мүмкін. Содан кейін, split () әдісін қолдануға болады, ол бастапқы жолды бөліктерге бөлінгенде алынатын жолдардың тізімін қайтарады. Мысал:
Мысал 7. Түпнұсқа жолды бөлек таңбаларға бөліп, жаңа тізім жасаңыз
# енгізу - бұл жол
# 1 2 3
s = input() # s == '1 2 3'
a = s.split() # a == ['1', '2', '3']
Егер сіз осы бағдарламаны бастаған кезде 1 2 3 жолын енгізсеңіз, тізім a ['1', '2', '3'] болады. Тізім сандар емес, жолдардан тұратынын ескеріңіз. Сандардың тізімін алғыңыз келсе, тізім элементтерін бір-бірлеп нөмірлендіруге болады:
Мысал 8. Түпнұсқаны бөлек таңбаларға бөліп, сандардан тұратын жаңа тізім жасаңыз
a = input().split()
for i in range(len(a)):
a[i] = int(a[i])
Python-генераторларының ерекше сиқырын пайдалану - бір жолмен жасалуы мүмкін:
Мысал 9. 9-мысалға қысқаша жазба.
a = [int(s) for s in input().split()]
Егер нақты сандардың тізімін оқығыңыз келсе, int типін float түрімен ауыстырыңыз.
Split () әдісі тізім элементі арасындағы қай бөлікті бөлгіш ретінде пайдаланылатындығын анықтайтын қосымша параметрге ие. Мысалы, Split («.») Деп аталатын әдіс бастапқы жолды '.' Арқылы кесу арқылы алынған тізімді қайтарады. Белгілер:
a = '192.168.0.1'.split('.')
Python бағдарламасында бір жолды пәрменді пайдалану арқылы жолдардың тізімін көрсетуге болады. Мұны істеу үшін біріктірілген жол әдісін қолданыңыз. Бұл әдіс бір параметрге ие: жолдардың тізімі. Нәтижесінде, жол қайтарылады, ол берілген тізімді элементтерді бір жолға қосу арқылы алынады, ал бөлгіш әдіс қолданылатын сызыққа тең тізім элементтері арасында енгізіледі. Келесі мысалдарды қарастырайық:
Мысал 10. Саптарды сепараторды оса отырып біріктіруa = ['red', 'green', 'blue']
print(' '.join(a))
# вернёт red green blue
print(''.join(a))
# вернёт redgreenblue
print('***'.join(a))
# вернёт red***green***blue
3. Генераторлар тізімі
Бірдей элементтермен толтырылған тізімді жасау үшін, тізімді қайталау операторын пайдалануға болады, мысалы:
n = 5
a = [0] * n
Күрделі формулалармен толтырылған тізімдерді жасау үшін сіз генераторларды пайдалана аласыз: формуламен тізімді толтыруға мүмкіндік беретін өрнектер.
Генератордың жалпы көрінісі келесідей:
[айнымалы мәндегі өрнек ретпен]
айнымалы қайда - айнымалы идентификаторы, бір тізбегі - айнымалыны алады құндылықтар тізбегі, (бұл тізім, жол немесе нысан ауқымы функциясын пайдаланып алуға болады) өрнек - бір өрнек, оның айнымалы генератор, әдетте, тәуелді пайдаланылады толтырылған тізім элементтері.
Мұнда генераторлар пайдалану бірнеше мысалдар болып табылады.
N нөлдер тұратын тізімін жасау және сіз генераторын пайдалануға болады:a = [0 for i in range(5)]
Мынадай бүтін сандардың квадраттарымен толтырылған тізімді жасаңыз:
n = 5
a = [i ** 2 for i in range(n)]
Если нужно заполнить список квадратами чисел от 1 до n, то можно изменить параметры функции range на range(1, n + 1):
n = 5
a = [i ** 2 for i in range(1, n + 1)]
Міне, сіз 1-ден 9-ға дейінгі кездейсоқ сандармен толтырылатын тізімді ала аласыз (кездейсоқ модульден randrange функциясын пайдалану арқылы):
from random import randrange
n = 10
a = [randrange(1, 10) for i in range(n)]
Бұл мысалда тізім стандартты енгізуден оқылған жолдардан тұрады: алдымен тізім элементтерінің санын енгізу керек (бұл мән ауқым функциясына аргумент ретінде пайдаланылады), содан кейін көрсетілген жолдар саны:
a = [input() for i in range(int(input()))]
Достарыңызбен бөлісу: |