Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Python programmalastırıw tilin úyreniw 4-BÓLIM_(Tipler hám Operaсiyalar)

.pdf
Скачиваний:
4
Добавлен:
08.11.2024
Размер:
456.75 Кб
Скачать

>>>S.replace('pa', 'XYZ') # Ishki qatardıń hár bir payda bolıwın basqası menen almastırıw

'SXYZm'

>>>S

'Spam'

Jáne de, usı qatar usıllarınıń atlarına qaramastan, biz bul jerde dáslepki qatarlardı ózgertpeymiz, al nátiyje sıpatında jańa qatarlar jasaymız — sebebi qatarlar

ózgermeytuǵın, biz bunı usılay islewimiz kerek. Qatar usılları Python-da tekst qayta islew qurallarınıń birinshi qatarı bolıp tabıladı. Basqa usıllar qatardı bólgish boyınsha ishki qatarlarǵa bóledi (ápiwayı tallaw forması ushın paydalı), úlken hám kishi háriplerge aylandırıwdı orınlaydı, qatardıń mazmunın tekseredi (sanlar, háripler hám t.b.) hám qatardıń shetlerindegi bos orınlardı alıp taslaydı:

>>>line = 'aaa,bbb,ccccc,dd'

>>>line.split(',') # Bólgish boyınsha ishki qatarlar dizimine bóliw ['aaa', 'bbb', 'ccccc', 'dd']

>>>S = 'spam'

>>>S.upper() # Úlken hám kishi háriplerge aylandırıw

'SPAM'

>>>S.isalpha() # Mazmun testleri: isalpha, isdigit hám t.b. True

>>>line = 'aaa,bbb,ccccc,dd\n'

>>>line = line.rstrip() # Oń táreptegi bos orın belgilerin alıp taslaw

>>>line

'aaa,bbb,ccccc,dd'

Qatarlar jáne de formatlaw dep atalatuǵın quramalı almastırıw operaсiyasın qollaydı, ol hám ańlatpa (dáslepki), hám qatar usılı shaqırıwı (2.6 hám 3.0 versiyalarında jańa) túrinde jetkilikli:

>>>'%s, eggs, and %s' % ('spam', 'SPAM!') # Formatlaw ańlatpası

(barlıǵı)

'spam, eggs, and SPAM!'

>>>'{0}, eggs, and {1}'.format('spam', 'SPAM!') # Formatlaw usılı (2.6, 3.0)

'spam, eggs, and SPAM!'

Bir eskertiw: dizbek operaсiyaları ulıwmalıq bolsa da, usıllar onday emes — geypara tipler ayırım usıl atların bólisse de, qatar usılı operaсiyaları tek qatarlarǵa ǵana isleydi hám basqa hesh nársege emes. Ulıwma qaǵıyda boyınsha, Python qurallar toplamı qatlamlı: bir neshe tiplerge tiyisli ulıwmalıq operaсiyalar qurılǵan

funkсiyalar yamasa ańlatpalar túrinde kórinedi (mısalı, len(X), X[0]), al tipke tán operaсiyalar usıl shaqırıwları bolıp tabıladı (mısalı, aString.upper()).

Usı barlıq kategoriyalar arasında ózińizge kerekli qurallardı tabıw Python-dı kóbirek qollanǵan sayın tábiyiy bolıp qaladı, biraq keyingi bólim házir qollana alatuǵın bir neshe másláhátler beredi.

Járdem alıw

Aldıńǵı bólimde tanıstırılǵan usıllar qatar obyektleri ushın jetkilikli bolǵan nárselerdiń wákillik etiwshi, biraq kishi úlgisi. Ulıwma alǵanda, bul kitap obyekt usılların tolıq qarap shıqpaydı. Kóbirek maǵlıwmat ushın, bárqulla qurılǵan dir funkсiyasın shaqıra alasız, ol berilgen obyekt ushın jetkilikli bolǵan barlıq atributlardıń dizimin qaytaradı. Usıllar funkсiya atributları bolǵanlıqtan, olar bul dizimde kórinedi. S hálide qatar dep esaplap, mine Python 3.0 daǵı onıń atributları

(Python 2.6 da azǵana ózgeshelikler bar):

>>> dir(S)

['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__',

'__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__',

'__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__',

'__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',

'__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__',

'__subclasshook__', '_formatter_field_name_split', '_formatter_parser',

'capitalize', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find',

'format', 'index', 'isalnum','isalpha', 'isdecimal', 'isdigit', 'isidentifier',

'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join',

'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind',

'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines',

'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

Bul dizimdegi astınǵı sızıq belgileri bar atlar haqqında kitaptıń keyingi bólimlerine shekem, klasslardaǵı operatorlardı qayta anıqlawdı úyrengenimizshe

qayǵırmawıńız múmkin — olar qatar obyektiniń implementaсiyasın kórsetedi hám qálegen ózgertiwlerdi qollaw ushın jetkilikli. Ulıwma alǵanda, eki astınǵı sızıq belgisi menen baslanıp hám tamamlanatuǵın atlar — bul Python implementaсiya tárepten paydalanatuǵın atlaw úlgisi. Bul dizimdegi astınǵı sızıq belgileri joq atlar qatar obyektlerindegi shaqırıla alatuǵın usıllar bolıp tabıladı.

dir funkсiyası tek usıllardıń atların beredi. Olardıń ne isleytuǵının biliw ushın, olardı help funkсiyasına jiberiwińiz múmkin:

>>> help(S.replace)

Replace qurılǵan funkсiyası haqqında járdem: replace(...)

S.replace (old, new[, count]) -> str

S qatarınıń barlıq old qatarshası new menen almastırılǵan kóshirmesin qaytaradı. Eger qosımsha count argumenti berilse, tek dáslepki count mártebe almastırıladı.

help - bul Python menen birge keletuǵın PyDoc dep atalatuǵın kod sistemasınıń interfeysleriniń biri - obyektlerden hújjetlestiriwdi shıǵarıp alıw quralı. Kitaptıń keyingi bólimlerinde PyDoc óz esabatların HTML formatında da bere alatuǵının kóresiz.

Siz pútkil qatar haqqında da járdem soray alasız (mısalı, help(S)), biraq siz kórgińiz kelgennen de kóbirek járdem alıwıńız múmkin - yaǵnıy, hár bir qatar usılı haqqında maǵlıwmat. Ádette, belgili bir usıl haqqında soraw jaqsıraq.

Kóbirek maǵlıwmat alıw ushın, Pythonnıń standart kitapxanasınıń oqıw qollanbasın yamasa kommerсiyalıq baspadan shıqqan oqıw qollanba kitaplardı da paydalanıwıńızǵa boladı, biraq dir hám help - Pythondaǵı hújjetlestiriwdiń birinshi qatarı bolıp esaplanadı.

Qatarlardı kodlawdıń basqa usılları

Usı waqıtqa shekem biz qatar obyektiniń izbe-izlik operaсiyaların hám tipke tán usılların kórip shıqtıq. Python bizge qatarlardı kodlawdıń hár qıylı usılların da usınadı, olardı keyinirek tereń úyrenemiz. Mısalı, ayrıqsha belgiler artqı sızıq (backslash) qashıw izbe-izligi sıpatında kórsetiliwi múmkin:

>>> S = 'A\nB\tC' # \n - qatar sońı, \t - tabulyaсiya

>>>len(S) # Hár biri tek bir belgi ushın turadı

5

>>>ord('\n') # \n - ASCII'de 10 sanlıq mánisi bar bayt

10

>>>S = 'A\0B\0C' # \0, nól baytı, qatardı toqtatpaydı

>>>len(S)

5

Python qatarlardı bir yamasa eki tırnaqsha belgileri ishine alıwǵa ruqsat beredi (olar birdey mánini ańlatadı). Ol jáne de úsh tırnaqsha (bir yamasa eki) ishine alınǵan kóp qatarlı qatar literallarına da ruqsat beredi - bul forma qollanılǵanda, barlıq qatarlar birlestiriledi hám qatar úzilisleri payda bolǵan jerlerge qatar sońı belgileri qosıladı. Bul kishi sintaksislik qolaylılıq, biraq Python skriptine HTML hám XML kodın jaylastırıw ushın paydalı:

>>>msg = """ aaaaaaaaaaaaa bbb'''bbbbbbbbbb""bbbbbbb'bbbb cccccccccccccc"""

>>>msg '\naaaaaaaaaaaaa\nbbb\'\'\'bbbbbbbbbb""bbbbbbb\'bbbb\ncccccccccccccc'

Python jáne de artqı sızıq qashıw mexanizmin óshiretuǵın shiyki qatar literalın qollaydı (bunday qatar literalları r háripi menen baslanadı), sonday-aq xalıqaralıq standartlardı qollaytuǵın Unicode qatar qollawın da qamtıydı. 3.0 versiyasında, tiykarǵı str qatar tipi Unicode-tı da qollaydı (bul mánili, sebebi ASCII tekst - bul ápiwayı Unicode túri), al bytes tipi shiyki bayt qatarların kórsetedi; 2.6 versiyasında Unicode ayrıqsha tip bolıp, str bolsa hám 8-bitli qatarlardı, hám binar maǵlıwmatlardı qollaydı. 3.0 versiyasında fayllar da ózgertilgen bolıp, tekst ushın str qaytaradı hám qabıl etedi, al binar maǵlıwmatlar ushın bytes qollanıladı. Bul ayrıqsha qatar formalarınıń hámmesi menen keyingi baplarda tanısamız.

Úlgi boyınsha izlew

Alǵa jıljıwdan aldın atap ótiwge turarlıq bir nárse - qatar obyektiniń usıllarınıń hesh biri úlgi tiykarındaǵı tekst qayta islewdi qollamaydı. Tekstte úlgi boyınsha izlew - bul kitaptıń kóleminen tıs qalatuǵın quramalı qural, biraq basqa skriptlew tilleri boyınsha tájiriybesi bar oqıwshılar Pythonda úlgi boyınsha izlew ushın re dep atalatuǵın moduldi importlaw kerek ekenin biliwi qızıqlı bolıwı múmkin. Bul modulde izlew, bóliw hám almastırıw ushın uqsas shaqırıwlar bar, biraq biz qatar astın kórsetiw ushın úlgilerdi paydalana alatuǵınımız sebepli, ádewir ulıwmalasqan bolıwımız múmkin:

>>>import re

>>>match = re.match('Hello[ \t]*(.*)world', 'Hello Python world')

>>>match.group(1)

'Python '

Bul mısal "Hello" sózi menen baslanatuǵın, keyin nól yamasa onnan kóp tabulyaсiya belgisi yamasa bos orın, sońınan sáykes kelgen top sıpatında saqlanatuǵın qálegen belgiler hám "world" sózi menen juwmaqlanatuǵın qatar astın izleydi. Eger usınday qatar astı tabılsa, qawsırmaǵa alınǵan úlgi bólimleri menen sáykes kelgen qatar astı bólimleri toplar sıpatında jetkilikli boladı. Mısalı, tómendegi úlgi qıya sızıq penen ajıratılǵan úsh toptı ajıratıp aladı:

>>>match = re.match('/(.*)/(.*)/(.*)', '/usr/home/lumberjack')

>>>match.groups()

('usr', 'home', 'lumberjack')

Úlgi boyınsha izlew óz aldına ádewir quramalı tekst qayta islew quralı bolıp tabıladı, biraq Pythonda jáne de quramalıraq til qayta islew, sonıń ishinde tábiyiy tildi qayta islew ushın da qollaw bar. Degen menen, bul sabaq ushın qatarlar haqqında jetkilikli ayttım, sonlıqtan keyingi tipke óteyik.

Dizimler

Pythondaǵı dizim obyekti - bul til tárepinen usınılǵan eń ulıwma izbe-izlik. Dizimler - bul qálegen tiptegi obyektlerdiń poziсiyası boyınsha tártiplestirilgen jıynaǵı bolıp, olardıń turaqlı ólshemi joq. Olar jáne de ózgermeli - qatarlardan parqlı, dizimlerdi orınlarǵa mánis beriw arqalı, sonday-aq hár qıylı dizim usılların shaqırıw arqalı ornında ózgertiwge boladı.

Izbe-izlik ámelleri

Dizimler izbe-izlik bolǵanlıqtan, olar qatarlar ushın talqılaǵan barlıq izbe-izlik

ámellerin qollaydı; jalǵız parqı - nátiyjeler ádette qatarlar emes, al dizimler boladı.

Mısalı, úsh elementli dizim berilgen bolsa:

>>>L = [123, 'spam', 1.23] # Úsh hár qıylı tiptegi obyektlerden turatuǵın dizim

>>>len(L) # Dizimdegi elementler sanı

3

biz qatarlar sıyaqlı indekslew, kesiw hám taǵı basqalardı isley alamız:

>>>L[0] # Poziсiya boyınsha indekslew

123

>>>L[:-1] # Dizimdi kesiw jańa dizimdi qaytaradı [123, 'spam']

>>>L + [4, 5, 6] # Biriktiriw de jańa dizim jasaydı [123, 'spam', 1.23, 4, 5, 6]

>>>L # Dáslepki dizimdi ózgertpeymiz

[123, 'spam', 1.23]

Tipke tán ámeller

Python dizimleri basqa tillerdegi massivlerge uqsas, biraq olar ádette kúshlirek boladı. Birinshi gezekte, olardıń qatań tip sheklewi joq - biz jańa ǵana kórgen dizim, mısalı, pútkilley hár qıylı tiptegi úsh obyektti óz ishine aladı (pútin san, qatar hám qalqıwshı útirli san). Bunnan tısqarı, dizimlerdiń turaqlı ólshemi joq.

Yaǵnıy, olar dizimge tán ámellerge juwap retinde talapqa qaray ósiwi hám kishireyiwi múmkin:

>>>L.append('NI') # Ósiw: dizim aqırına obyekt qosıw

>>>L

[123, 'spam', 1.23, 'NI']

>>>L.pop(2) # Kishireyiw: ortadaǵı elementti óshiriw 1.23

>>>L # "del L[2]" de dizimnen óshiredi

[123, 'spam', 'NI']

Bul jerde, dizimniń append metodı dizim ólshemin keńeytedi hám aqırına element qosadı; pop metodı (yamasa oǵan uqsas del operatorı) berilgen indekstegi elementti óshiredi, dizimniń kishireyiwine alıp keledi. Basqa dizim metodları qálegen poziсiyaǵa element qosadı (insert), berilgen mánisli elementti óshiredi

(remove) hám taǵı basqa. Dizimler ózgermeli bolǵanlıqtan, kópshilik dizim metodları jańa obyekt jasawdıń ornına dizim obyektin ornında ózgertedi:

>>>M = ['bb', 'aa', 'cc']

>>>M.sort()

>>>M

['aa', 'bb', 'cc']

>>>M.reverse()

>>>M

['cc', 'bb', 'aa']

Mısalı, bul jerdegi dizimniń sort metodı dizimdi ádepki boyınsha ósiw tártibinde jaylastıradı, al reverse onı teris tártipke aylandıradı - eki jaǵdayda da metodlar dizimdi tikkeley ózgertedi.

Shegara tekseriwi

Dizimlerdiń turaqlı ólshemi bolmasa da, Python bizge joq elementlerge múrájat etiwge ruqsat bermeydi. Dizim shegarasınan tısqarı indekslew bárqulla qáte boladı, sonday-aq shegaradan tısqarı mánis beriw de qáte:

>>> L

[123, 'spam', 'NI']

>>> L[99]

...qáte tekst ótkizip jiberildi...

IndexError: list index out of range

>>> L[99] = 1

...qáte tekst ótkizip jiberildi...

IndexError: list assignment index out of range

Bul bilip turıp islengen, sebebi dizim shegarasınan tısqarı mánis beriwge urınıw ádette qáte bolıp esaplanadı (hám C tilinde ayrıqsha qáwipli, ol Python sıyaqlı kóp qáte tekseriwin orınlamaydı). Juwap retinde dizimdi únsiz ósiriwdiń ornına, Python qáte haqqında xabar beredi. Dizimdi ósiriw ushın, biz onıń ornına append sıyaqlı dizim metodların shaqıramız.

Uyalaw (Nesting)

Pythonnıń tiykarǵı maǵlıwmat tipleriniń jaqsı ózgesheligi - olar qálegen uyalawdı qollaydı - biz olardı qálegen kombinaсiyada hám qálegen tereńlikte uyalay alamız

(mısalı, bizde sózlik bar dizim bolıwı múmkin, onıń ishinde basqa dizim bar hám t.b.). Bul ózgesheliktiń bir tikkeley qollanılıwı - Pythonda matriсalardı yamasa "kóp ólshemli massivlerdi" kórsetiw. Uyalanǵan dizimleri bar dizim tiykarǵı qollanıwlar ushın jumıs isleydi:

>>>M = [[1, 2, 3], # 3 × 3 matriсa, uyalanǵan dizimler sıpatında

[4, 5, 6], # Kod qawsırmaǵa alınǵan bolsa, qatarlar boylap sozılıwı múmkin

[7, 8, 9]]

>>>M

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Bul jerde biz úsh basqa dizimnen turatuǵın dizimdi kodladıq. Nátiyjede 3 × 3 sanlar matriсasın kórsetedi. Bunday strukturaǵa hár qıylı jollar menen kiriwge boladı:

>>>M[1] # 2-qatardı alıw

[4, 5, 6]

>>>M[1][2] # 2-qatardı alıw, soń qatar ishindegi 3-elementti alıw

6

Bul jerdegi birinshi operaсiya pútkil ekinshi qatardı aladı, al ekinshisi sol qatar ishindegi úshinshi elementti aladı. Indeks operaсiyaların birge qosıw bizdi uyalanǵan obyekt strukturamızǵa tereńirek hám tereńirek alıp baradı.

Túsinikler (Comprehensions)

Izbe-izlik operaсiyaları hám dizim metodlarınan tısqarı, Python dizimdi túsiniw ańlatpası (list comprehension expression) dep atalatuǵın qosımsha rawajlanǵan operaсiyanı qamtıydı, bul bolsa matriсamız sıyaqlı strukturalardı qayta islewdiń kúshli usılı bolıp shıǵadı. Mısalı, bizge úlgi matriсamızdıń ekinshi baǵanasın alıw kerek bolsın. Matriсa qatarlar boyınsha saqlanǵanlıqtan, ápiwayı indekslew arqalı qatarlardı alıw ańsat, biraq dizimdi túsiniw arqalı baǵananı alıw da sonday ańsat:

>>>col2 = [row[1] for row in M] # 2-baǵanadaǵı elementlerdi jıynaw

>>>col2

[2, 5, 8]

>>> M # Matriсa ózgerissiz qaladı

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Dizimdi túsiniw ańlatpaları kóplik belgilewinen kelip shıqqan; olar izbe-izliktegi hár bir elementke ańlatpanı bir waqıtta, shepten ońǵa qaray orınlaw arqalı jańa dizim qurıwdıń usılı. Dizimdi túsiniw ańlatpaları kvadrat qawsırmalarda jazıladı (bul olardıń dizim jasaytuǵının bildiredi) hám ańlatpa hám aynımalı atın bólisetuǵın qaytalaw konstrukсiyasınan turadı (bul jerde row). Joqarıdaǵı dizimdi túsiniw ańlatpası tiykarınan mınanı ańlatadı: "M matriсasındaǵı hár bir qatar ushın row[1] di jańa dizimde ber". Nátiyje matriсanıń 2-baǵanasın qamtıytuǵın jańa dizim boladı.

Dizimdi túsiniw ańlatpaları ámeliyatta quramalıraq bolıwı múmkin:

>>>[row[1] + 1 for row in M] # 2-baǵanadaǵı hár bir elementke 1 qosıw [3, 6, 9]

>>>[row[1] for row in M if row[1] % 2 == 0] # Taq sanlardı súzip taslaw

[2, 8]

Mısalı, birinshi operaсiya hár bir elementti jıynaǵanda oǵan 1 qosadı, al ekinshisi if shártin qollanıp, % modul ańlatpası (bóliwden qalǵan qaldıq) arqalı nátiyjeden taq sanlardı súzip taslaydı. Dizimdi túsiniw ańlatpaları jańa nátiyjeler dizimin jasaydı, biraq olar hár qanday iteraсiyalanatuǵın obyekt boyınsha iteraсiya jasaw ushın qollanılıwı múmkin. Mısalı, bul jerde biz dizimdi túsiniw ańlatpaların aldın ala belgilengen koordinatalar dizimi hám qatar boyınsha júriw ushın qollanamız:

>>>diag = [M[i][i] for i in [0, 1, 2]] # Matriсadan diagonaldı jıynaw

>>>diag

[1, 5, 9]

>>>doubles = [c * 2 for c in 'spam'] # Qatardaǵı háriplerdi eki ret qaytalaw

>>>doubles

['ss', 'pp', 'aa', 'mm']

Dizimdi túsiniw ańlatpaları hám olarǵa uqsas map hám filter sıyaqlı qurılǵan funkсiyalar haqqında bul jerde kóbirek aytıw ushın biraz quramalı. Bul qısqasha kirisiwdiń tiykarǵı maqseti - Pythonnıń óz qurallarında ápiwayı hám quramalı qurallardı qamtıytuǵının kórsetiw. Dizimdi túsiniw ańlatpaları qosımsha múmkinshilik, biraq olar ámeliyatta paydalı bolıwǵa beyim hám kóbinese ádewir qayta islew tezligin beredi. Olar sonday-aq Pythondaǵı hár qanday izbe-izlik tipinde, sonday-aq izbe-izlik bolmaǵan bazı bir tiplerde de isleydi. Bul kitapta keyinirek olar haqqında kóbirek esitesiz.

Aldın ala kóriw retinde, jaqında shıqqan Python versiyalarında qawsırmalar ishindegi túsiniw sintaksisin talap boyınsha nátiyjeler beriwshi generatorlardı jasaw ushın da qollanıwǵa boladı (mısalı, sum funkсiyası izbe-izliktegi elementlerdi qosadı):

>>>G = (sum(row) for row in M) # Qatar jıyındılarınıń generatorın jasaw

>>>next(G)

6

>>> next(G) # Iteraсiya protokolın iske qosıw 15

Map funkсiyası da usıǵan uqsas jumıstı isley aladı, elementlerdi funkсiya arqalı ótkizip nátiyjeler beredi. Onı list funkсiyasına orap, Python 3.0-de barlıq mánislerin qaytarıwǵa májbúrleymiz:

>>> list(map(sum, M)) # M-degi elementler boyınsha sum funkсiyasın qollanıw

[6, 15, 24]

Python 3.0-de túsiniw sintaksisin jıyındı hám sózlikler jasaw ushın da qollanıwǵa boladı:

>>>{sum(row) for row in M} # Qatar jıyındılarınıń jıyındısın jasaw {24, 6, 15}

>>>{i : sum(M[i]) for i in range(3)} # Qatar jıyındılarınıń

gilt/mánis kestesin jasaw {0: 6, 1: 15, 2: 24}

Haqıyqatında, Python 3.0-de dizimler, jıyındılar hám sózliklerdi túsiniw ańlatpaları menen qurıwǵa boladı:

>>>[ord(x) for x in 'spaam'] # Háriplerdiń kod sanlarınıń dizimi [115, 112, 97, 97, 109]

>>>{ord(x) for x in 'spaam'} # Jıyındılar qaytalanıwlardı alıp taslaydı

{112, 97, 115, 109}

>>>{x: ord(x) for x in 'spaam'} # Sózlik giltleri unikal boladı {'a': 97, 'p': 112, 's': 115, 'm': 109}

Biraq generatorlar, jıyındılar hám sózlikler sıyaqlı obyektlerdi túsiniw ushın bizge alǵa jıljıwımız kerek.

Sózlikler

Python sózlikleri pútkilley basqa nárse (Monty Python-ǵa silteme etilgen)—olar hesh qanday izbe-izlikler emes, al kartaǵa túsiriw (mapping) dep ataladı. Kartaǵa túsiriwler de basqa obyektlerdiń jıynaǵı bolıp tabıladı, biraq olar obyektlerdi salıstırmalı ornı boyınsha emes, al gilt arqalı saqlaydı. Shınında da, kartaǵa túsiriwler hesh qanday isenimli shepten ońǵa tártipti saqlamaydı; olar tek giltlerdi baylanıslı mánislerge sáykeslendiredi. Sózlikler, Python-nıń tiykarǵı obyektler toplamındaǵı jalǵız kartaǵa túsiriw túri, sonday-aq ózgermeli: olardı ornında ózgertiwge boladı hám olar dizimler sıyaqlı talap boyınsha ósip hám kishireye aladı.

Kartaǵa túsiriw operaсiyaları

Literallar túrinde jazılǵanda, sózlikler figuralı qawsırmalarda kodlanadı hám "gilt: mánis" jublarınıń qatarınan turadı. Sózlikler giltler menen mánisler toplamın baylanıstırıw kerek bolǵan hár qanday jaǵdayda paydalı—mısalı, bir nárseniń qásiyetlerin súwretlew ushın. Mısal retinde, tómendegi úsh elementli sózlikti qarań

(giltleri "food", "quantity" hám "color"):

>>> D = {'food': 'Spam', 'quantity': 4, 'color': 'pink'}

Biz bul sózlikti gilt arqalı indekslep, giltlerdiń baylanıslı mánislerin alıw hám ózgertiw ushın paydalana alamız. Sózlik indekslew operaсiyası izbe-izlikler ushın qollanılatuǵın sintaksisti paydalanadı, biraq kvadrat qawsırmalar ishindegi element salıstırmalı orın emes, al gilt bolıp tabıladı:

>>>D['food'] # 'food' giltiniń mánisin alıw

'Spam'

>>>D['quantity'] += 1 # 'quantity' mánisine 1 qosıw

>>>D

{'food': 'Spam', 'color': 'pink', 'quantity': 5}