31-Сұрақ
Сөздік құру. Сөздікке элементтер қосу, өзгерту және өшіру
Сөздіктер құру
Сөздік (dictionaгу) - бұл мәліметтер коллекциясын (тобын, жиынын) сақтайтын объект-контейнер. Сөздіктің әрбір элементі екі бөліктен: кілттен және мәннен тұрады. Кілт нақты бір мәннің тұрған орнын анықтау үшін қолданылады.
• Сөздік элементтері қосарланған кілт/ман жұбынан тұрады. Сөздік- тегі сөз - кілт, ал оның анықтамасы оның мәні болып табылады. Мысалы, программадағы адамның аты кілт, оның телефон нөмірі - кілттің мәні. Егер адам аты белгілі болса, онда оның телефон нөмірін ала аламыз.
• Сөздік құру үшін жүйелік жақшалар ({}) қолданылады. Мұндағы бір элемент кілттен, қоснүктеден, сонан соң мәннен тұрады. Олар үтір- мен бөлінеді. Келесі нұсқау phonebook айнымалысына сөздікті мен- шіктеу арқылы оны анықтау өрнегі болып табылады: phonebook = { 'Крис': '555-1111', 'Катя' : '555-2222', 'Джоанна': '555-3333'} Сөздіктердегі мән кез келген типтегі объект бола алады, ал бірақ кілт мутацияланбайтын, яғни өзгермейтін объект болуы тиіс. Кілт ретінде тіркестік мәндер, бүтін сандар, аралас сандар немесе кортеждер де бола береді. Тізімдер немесе одан да басқа өзгеретін объектер кілт бола алмайды. Сөздік элементтері нақты бір реттілікпен орналаспайды. Мысал ретінде келесі нұсқауларды қарастырайық:
>>> телефон кітапшасы = { 'Крис': '555-1111', 'Катя': '555-2222', 'Джоанна': '555-3333' } Енгізіңіз
>>> телефон кітапшасын енгізіңіз
{ 'Джоанна': '555-3333', 'Крис': '555-1111', 'Катя': '555-2222'} >>>
Мұнан сөздік элементтерінің құрылуы мен шығарылу реттіліктері бір- дей емес екені көрініп тұр. Сөздіктер тізім, кортеж немесе тіркестік элементтері емес екені осыдан көрініп тұр. Мұнда нәтиже ретінде, сандық индекс арқылы мән алуды қолда- нуға болмайды. Мән алу үшін тек кілтті пайдалану керек.
• Сөздіктен мән алу үшін келесі форматтағы өрнек жазылады: сөздік аты (кілт] Бұл форматағы сөздік_аты - бұл сөздікке сілтеме жасайтын айны- малы, ал кілт бұл қолданылып отырған кілт. Егер сөздікте кілт бар болатын болса, онда мұндағы өрнек сол кілтпен байланысты мәнді қайтарады. Ал егер сөздікте кілт жоқ болатын болса, онда KeyError (кілттің қатесі) аластамасы шақырылады. Келесі интерактивті мысал осы әрекетті көрсетеді.
Сөздікке элементтер қосу
Сөздіктер өзгермелі объектілер, сондықтан оларға жаңа кілт/мән жұптарын қоса аламыз, ол үшін төмендегі форматтағы тәрізді меншіктеу нұсқауын қолдану керек:
сөздік аты (кілт] = мән
Мұндағы сөздік аты бұл сөздікке сілтеме жасайтын айнымалы, кілт - бұл қолданылатын кілт. Егер мұндай кілт бұрыннан бар болса, онда оған сәйкес мән өзгертіледі. Егер ондай кілт жоқ болатын болса, онда ол өзінің мәнімен бірге сөздікке қосылады. Мысалы:
1 >>> телефон кітапшасы = («Крис»:'555-1111', 'Катя': '555-2222', 'Джоанна': '555-3333') Енгізіңіз
2 >>> телефон кітапшасы['Joe'] = '555-0123' Енгізіңіз
3 >>> телефон кітапшасы['Chris'] = '555-4444' Енгізіңіз
4 >>> телефон кітапшасын енгізіңіз
5("Крис": '555-4444', 'Джоанна': '555-3333', 'Джо': '555-0123',
'Катя': '555-2222'}
Сөздік элементтерін өшіру
• del нұсқауымен сөздікте бұрыннан бар кілт/мән жұбын өшіре аламыз. Оның форматы: del сөздік_аты [кілт] Мұнда сөздік аты сөздікке сілтеме жасап тұрған айнымалы, ал кілт - бұл қолданылатын кілт. Бұл нұсқаудан кейін кілт пен оның мәні сөздіктен өшіріледі. Егер ондай кілт болмаса, онда КеуErroг аластамасы туындайды: 1 >>> phonebook = [ 'Крис': '555-1111', 'Катя": "555-2222',
«Джоанна»: '555-3333') Енгізіңіз
2 3 («Крис': '555-1111', 'Джоанна': '555-3333', 'Катя': '555-2222')
>>> телефон кітапшасын енгізіңіз
>>> телефон кітапшасын [ 'Chris'] енгізіңіз
4>>> телефон кітапшасы 5 енгізіңіз
6 («Джоанна»: '555-3333', 'Катя': '555-2222')
7 8 >>> телефон кітапшасын [ 'Chris'] енгізіңіз
Traceback (соңғы қоңырау):
"
" файлы, 1-жол, <модуль> ішінде телефон кітапшасы [ 'Chris']
9
10
11 кілт қатесі: «Крис»
12 >>>
KeyError аластамасын туындатпас үшін іn операторын қолданып, алдын ала керекті кілт сөздікте бар/жоқ екенін біліп алуға болады:
1 >>> телефон кітапшасы = { 'Kris': '555-1111', 'Катя': '555-2222', 'Joanna':'555-3333') Енгізіңіз
2 >>> телефон кітапшасында 'Крис' болса: Енгізіңіз
3 телефон кітапшасы[ 'Chris'] Enter пернесін енгізіңіз
4
5 >>> телефон кітапшасын енгізіңіз
6 («Джоанна»: '555-3333', 'Катя': '555-2222')
7 >>>
Сөздіктегі мәліметтер типін араластыру
Бір сөздіктегі мәндер әртүрлі типтерде болуы мүмкін. Мысалы, бір элемент мәні - тіркестік объект, екінші элемент мәні тізім, ал тағы бірі бүтін сан болуы мүмкін. Кілттер де әртүрлі типтерде бола береді, бірақ олар өзгермейтін болып қалуы тиіс. Келесі мысал сөздіктегі типтердің қалай араласып келе беретінін көрсетеді:
1 >>> mixed_up = ('abv' :1, 999: 'tada tada', (3, 6, 9): [3, 6, 9] ] Енгізіңіз
2 >>> араласқан Enter
3( (3, 6, 9): [3, 6, 9), 'abv': 1, 999: 'содан кейін' )
4 >>>
1-жол сөздік құрады да, оны mixed_up (смесь) айнымалысына меншіктейді. Бұл сөздікте төмендегі элементтер бар. Бірінші элемент абв': 1'. Бұл элементте кілт абв' тіркесі, мәні -1 бүтін саны. Екінші элемент 999: 'тада тада. Бұл элемент кілті бүтін сан 999, мәні - тада тада тіркестік мәні. Үшінші элемент (3, 6, 9): [3, 6, 9]. Мұндағы кілт кортеж (3, 6, 9), ал мәні - [3, 6, 9] тізімі.Келесі жолдарда практикалық мысал көрсетілген. Онда қызметкер туралы мәліметтері бар сөздік жасалған:
1 >>> қызметкер = {'аты': 'Кевин Смит', 'ID': 12345, 'баға':25,75} Енгізіңіз
2 >>> қызметкер енгізу
3 { 'ID': 12345, 'ставка': 25,75, толық аты-жөні': 'Кевин Смит' }
4 >>>
1-жолда сөздік құрылып, ол еmployee айнымалысына меншіктеледі. Бұл сөздікте төмендегідей элементтер бар. Бірінші элемент фио' : "Кевин Смит. Мұндағы кілт тіркестік литерал 'фио', оның мәні - "Кевин Смит' тіркестік мәні. Екінші элемент 'ид' :12345. Бұл элементтегі кілт - тіркестік литерал ид', оның мәні - 12345 бүтін саны.
• Үшінші элемент 'ставка': 25.75. Мұндағы кілт тіркестік литерал 'ставка', оның мәні - нақты сан 25.75.
Достарыңызбен бөлісу: |