10 корисних метода Питхон речника

Да ли желите да научите како да радите са Питхон речницима? Овај водич ће покрити методе Питхон речника за читање, модификовање и извођење других уобичајених операција на Питхон речницима.

Почећемо тако што ћемо прегледати основе Питхон речника, а затим креирати пример речника и модификовати га користећи методе Питхон речника.

Хајде да почнемо…

Преглед Питхон речника

Речници су уграђене структуре података у Питхон-у. Омогућава вам да складиштите ставке у паровима кључ-вредност—дефинисање асоцијације или мапирања између кључева и вредности.

Кључеви у речнику треба да буду јединствени (да би могли да се хеширају). Можете да користите кључ да бисте потражили вредност или да користите уграђене методе (ускоро ћете их научити).

Када креирате Питхон речник, можете иницијализовати све парове кључ-вредност или иницијализовати празан речник, а затим додати парове кључ-вредност.

>>> dict1 = {'language':'Python','like':True}
>>> type(dict1)
<class 'dict'>

# or we can do the following:

>>> dict1 = {}
>>> dict1['language']='Python'
>>> dict1['like']=True

Методе Питхон речника за уобичајене операције

Напомена: Да бисте пратили примере кода, потребно је да имате инсталиран Питхон 3.7 или новију верзију.

Можете кодирати заједно у Питхон РЕПЛ-у. Или пратите у вдзвдз-овом онлајн Питхон уређивачу.

>>> person = {'name':'Alice',
...           'city':'Portland',
...           'interest':'Programming',
...           'profession':'Developer'
...           }

Сада када смо иницијализовали Питхон речник, почнимо да прегледамо различите методе речника.

Преузмите кључеве речника помоћу тастера()

Једна од уобичајених операција када радите са Питхон речником је приступ свим кључевима, вредностима и паровима кључ/вредност. Да бисте добили кључеве речника, можете позвати метод кеис() као што је приказано:

>>> person.keys()
dict_keys(['name', 'city', 'interest', 'profession'])

Добијте вредности речника са вредностима()

Метода валуес() враћа све вредности и корисна је када желите да даље обрадите ове вредности.

  Шта је мрежни заштитни зид и како помаже у заустављању напада?

Приступимо свим вредностима у речнику особа:

>>> person.values()
dict_values(['Alice', 'Portland', 'Programming', 'Developer'])

Набавите парове кључ-вредност са ставкама()

Метод итемс() враћа листу парова кључ/вредност. Стога, позивање ове методе у речнику особа враћа листу парова кључ/вредност:

>>> person.items()
dict_items([('name', 'Alice'), ('city', 'Portland'), ('interest', 'Programming'), 
           ('profession', 'Developer')])

Набавите плитку копију помоћу цопи()

Метода цопи() враћа плитку копију Питхон речника.

>>> person_cpy = person.copy()

Овде је персон_цпи плитка копија речника особа. Хајде да изменимо ову копију ажурирањем кључа ‘наме’ у ‘Боб’.

>>> person_cpy['name'] = 'Bob'
>>> person_cpy

Сада, ако прегледате садржај речника, можете видети да је ‘име’ ажурирано у ‘Боб’.

{
 'name': 'Bob', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

Међутим, оригинални речник особа није измењен.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

Подесите подразумеване вредности помоћу сетдефаулт()

Када радите са Питхон речницима, уобичајено је да наиђете на КеиЕррор изузетак ако кључ није присутан у речнику. Ево примера када покушамо да приступимо кључу „старост“:

>>> person['age']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Такве грешке можете избећи коришћењем уграђених метода сетдефаулт() и гет() уместо приступа вредности као што је горе.

Метод сетдефаулт(кеи) враћа дицт[‘key’] ако је кључ присутан у диктату.

>>> person.setdefault('name')
'Alice'

Када кључ није присутан, он додаје кључ у речник са подразумеваном вредношћу Ништа.

>>> person.setdefault('address')
>>> person

Овде кључ ‘адреса’ није присутан у речнику особа. Али видимо да је додат са подразумеваном вредношћу Ништа.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': None 
}

Сада можемо да подесимо кључ ‘адреса’ на неку адресу:

>>> person['address'] = "10, xyz street"
>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street' 
}

Такође можете да наведете вредност у позиву методе, као што је приказано:

>>> person.setdefault('country','USA')
'USA'
>>> person

Како кључ ‘цоунтри’ првобитно није присутан у речнику особа, видимо да је додат са ‘УСА’ као вредност.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Добијте одређену вредност помоћу гет()

Метод гет() враћа вредност која одговара кључу. Такође опционо узима другу подразумевану вредност која се враћа ако кључ није пронађен у речнику.

  Како да прилагодите почетни екран Гоогле ТВ-а

Када покушамо да приступимо вредности кључа ‘наме’, добијамо ‘Алице’ пошто је кључ присутан лично:

>>> person.get('name')
'Alice'

Речник особа нема ‘гпа’ кључ. Дакле, када покушамо да добијемо његову вредност, не добијамо ништа у Питхон РЕПЛ-у. Међутим, ако одштампате вредност, добићете Ништа.

>>> person.get('gpa')
>>> print(person.get('gpa'))
None

Али ако унесете опциону подразумевану вредност, добијамо ту вредност уместо Ништа.

>>> person.get('gpa','not found')
'not found'

Међутим, метода гет() не додаје кључ ‘гпа’ у речник.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Разумевање сетдефаулт() у односу на гет()

Иако се методе сетдефаулт() и гет() могу користити за руковање КеиЕррор-ом, хајде да сумирамо разлике од онога што смо научили:

  • дицт.сетдефаулт(кеи,вал) додаје кључ са вал као подразумевану вредност. Ако вал није наведен, кључ се додаје са подразумеваном вредношћу Ништа.
  • дицт.гет(кеи,вал) враћа вредност која одговара кључу из Питхон речника. Ако кључ није присутан, враћа вал (ако је наведен) или Ништа—али не додаје кључ у речник.

Такође можете да користите дефаултдицт у Питхон-у да бисте боље обрадили КеиЕррорс.

Ажурирајте садржај речника помоћу упдате()

Можете ажурирати постојећи Питхон речник користећи парове кључ/вредност из другог речника. Такође можете ажурирати садржајем било ког Питхон итерабле користећи упдате() метод.

Хајде да дефинишемо речник море_детаилс. Затим ажурирамо речник особа са садржајем из више_детаилс речника:

>>> more_details = {'hobby':'singing', 'likes':'sweets'}
>>> person.update(more_details)

Из доњег излаза видимо да су кључеви ‘хоби’ и ‘лајкови’ додати у речник особа.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing', 
 'likes': 'sweets'
}

Уклоните последњу додату ставку помоћу попитем()

Метод речника попитем() се може користити за уклањање последњег додатог пара кључ-вредност.

>>> person.popitem()
('likes', 'sweets')

Као што се види, позивање методе попитем() у речнику особа враћа пар кључ-вредност (‘свиђа ми се’, ‘слатко’)—последњу додату ставку у речник.

Такође уклања пар кључ-вредност. Ово можете потврдити прегледом садржаја речника:

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing'
}

Уклоните ставку из речника помоћу поп()

Знамо да метода речника попитем() уклања и враћа последњи пар кључ/вредност у Питхон речнику. Међутим, понекад ћемо морати да уклонимо и друге ставке – осим последњег доданог пара кључ/вредност.

  Миксујте музику са вашег локалног диска или са СоундЦлоуд-а [Web]

Да бисмо то урадили, можемо користити метод Питхон речника поп(): коришћење .поп(кеи) у речнику враћа вредност која одговара кључу и такође уклања пар кључ-вредност из речника.

Ево примера:

>>> person.pop('hobby')
'singing'

Када смо отворили ставку која одговара кључном ‘хоби’, видимо да више није присутна у речнику.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Ако проследимо кључ који не постоји, наилазимо на КеиЕррор изузетак, као што је приказано:

>>> person.pop('age')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Овде наилазимо на изузетак КеиЕррор јер кључ ‘аге’ није присутан у речнику особа.

За разлику од методе листе поп() која подразумевано уклања последњу ставку, метода поп() речника захтева кључ. Ако не наведете кључ у методи, наићи ћемо на грешке.

>>> person.pop()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pop expected at least 1 argument, got 0

Избришите све ставке речника помоћу цлеар()

Речник методе поп() и попитем() уклањају један по један пар кључ-вредност. Ако желите да избришете све ставке у речнику, можете користити методу цлеар().

>>> person.clear()
>>> person
{}

Као што се види, позивање методе цлеар() у речнику особа уклања све парове кључ-вредност и речник особа је сада празан.

Резиме метода Питхон речника

Ево кратког прегледа метода Питхон речника које смо научили.

МетходСинтакДесцриптионкеис()дицт1.кеис()Враћа кључеве дицт1валуес()дицт1.валуес()Враћа вредности дицт1итемс()дицт1.итемс()Враћа листу свих парова кључ-вредност у дицт1цопи()дицт1.цопи() Враћа плитку копију дицт1сетдефаулт()дицт1.сетдефаулт(кеи, дефаулт_валуе) – Додаје кључ са опционом дефаулт_валуе као кључ за дицт1 (када није наведено, подразумевана вредност је Ништа)
– Враћа дицт1[key] ако је кључ већ пресентгет()дицт1.гет(кеи,дефаулт_валуе)– враћа дицт1[key] ако је кључ присутан у дицт1; Иначе, враћа дефаулт_валуе
– Ако кључ није присутан у дицт1 и дефаулт_валуе није наведен, враћа Нонеупдате()дицт1.упдате(итерабле1)Ажурира дицт1 са паровима кључ-вредност из итерабле1попитем()дицт1.попитем()Уклања и враћа последњи пар кључ-вредност из дицт1поп()дицт1.поп(кеи)– Уклања и враћа вредност која одговара кључу: дицт1[key]
– Покреће КеиЕррор ако кључ није присутан у дицт1цлеар()дицт1.цлеар() Брише све ставке из дицт1

Закључак

Научили сте како да користите уобичајене методе за обављање операција читања, ажурирања и брисања на Питхон речницима. Поред тога, такође сте научили како методе гет() и сетдефаулт() могу да се користе за руковање изузецима КеиЕррор враћањем подразумеване вредности и додавањем уноса са подразумеваном вредношћу у Питхон речник. Такође можете сортирати Питхон речник по кључу или вредности.

Затим погледајте листу корисних метода Питхон листе. Срећно кодирање!