Речник в Python със синтаксис и пример

⚡ Умно обобщение

Речник в Python е неподредена колекция от двойки ключ-стойност, записани в къдрави скоби. Примерите по-долу обхващат създаването на речници, достъпа, актуализирането и изтриването на елементи, вградените методи и свойствата на ключовете на речника.

  • 🗂️ Определение: Речникът съхранява данните като двойки ключ-стойност, оградени във фигурни скоби.
  • 🔑 ключове: Ключовете трябва да са уникални и непроменяеми; стойностите могат да се повтарят.
  • Update: Добавяне или промяна на елементи чрез присвояване на стойност на ключ.
  • 🗑️ Изтрий: Премахнете елементи с командата del или метода pop().
  • 🛠️ Методи: Вградени методи като keys(), values() и items() ви помагат да работите с речници.
  • Бързо търсене: Речниците предоставят бърз достъп до стойности чрез техния ключ.

Речник в Python

Какво е речник в Python?

A Речник в Python е неподредената и променлива колекция от стойности на данни, която съдържа двойки ключ-стойност. Всяка двойка ключ-стойност в речника картографира ключа към свързаната с него стойност, което го прави по-оптимизиран. Речник в python се декларира чрез затваряне на разделен със запетаи списък от двойки ключ-стойност с помощта на фигурни скоби ({}). Python Речникът е класифициран в два елемента: ключове и стойности.

  • Ключовете ще бъдат един елемент
  • Стойностите могат да бъдат списък или списък в списък, числа и т.н.

Синтаксис за Python Речник

Dict = { ' Tim': 18,  xyz,.. }

Речникът е посочен във къдрави скоби, вътре в тези къдрави скоби се декларират ключове и стойности. Всеки ключ е отделен от стойността си с двоеточие (:), докато запетаите разделят всеки елемент.

Синтаксис за Python Речник

Свойства на ключовете на речника

Има два важни момента при използване на речникови ключове

  • Повече от един запис на ключ не е разрешен (не се допуска дублиран ключ)
  • Стойностите в речника могат да бъдат от всякакъв тип, докато ключовете трябва да са неизменни като числа, кортежи
  • Ключовете на речника са чувствителни към главни и малки букви - Едно и също име на ключ, но с различни регистри се третират като различни ключове Python речници.

Python 2 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print (Dict['Tiffany'])

Python 3 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print((Dict['Tiffany']))
  • В кода имаме име на речника „Dict“
  • Декларирахме името и възрастта на лицето в речника, където името е „Ключове“, а възрастта е „стойността“
  • Сега стартирайте кода
  • Той извлича възрастта на Тифани от речника.

Python Речникови методи

Копиране на речник

Можете също да копирате целия речник в нов речник. Например, тук копирахме нашия оригинален речник с новото име на речника „Момчета“ и „Момичета“.

Python 2 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
studentX=Boys.copy()
studentY=Girls.copy()
print studentX
print studentY

Python 3 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
studentX=Boys.copy()
studentY=Girls.copy()
print(studentX)
print(studentY)
  • Имаме оригиналния речник (Dict) с имената и възрастта на момчетата и момичетата заедно
  • Но искаме списъкът с момчета да е отделен от списъка с момичета, така че дефинирахме елемента за момчета и момичета в отделно име на речника „Момчета“ и „Момичета“.
  • Сега отново създадохме ново име на речник „student X“ и „student Y“, където всички ключове и стойности на речника за момчета се копират в student X, а момичетата ще бъдат копирани в studentY
  • Така че сега не е нужно да преглеждате целия списък в главния речник (Dict), за да проверите кой е момче и кой е момиче, просто трябва да отпечатате студент X, ако искате списък с момчета, и StudentY, ако искате списък с момичета
  • Така че, когато стартирате речника на student X и studentY, той ще даде всички елементи, присъстващи в речника на „момчета“ и „момичета“ поотделно

Актуализиране на речника

Можете също така да актуализирате речник, като добавите нов запис или двойка ключ-стойност към съществуващ запис или като изтриете съществуващ запис. Тук в примера ще добавим друго име, „Сара“ към нашия съществуващ речник.

Python 2 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Dict.update({"Sarah":9})
print Dict

Python 3 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Dict.update({"Sarah":9})
print(Dict)
  • Нашият съществуващ речник „Dict“ няма името „Sarah“.
  • Използваме метода Dict.update, за да добавим Сара към нашия съществуващ речник
  • Сега стартирайте кода, той добавя Сара към нашия съществуващ речник

Изтриване на ключове от речника

Python речник ви дава свободата да изтриете всеки елемент от списъка с речници. Да предположим, че не искате името Чарли в списъка, така че можете да премахнете ключовия елемент чрез следния код.

Python 2 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
del Dict ['Charlie']
print Dict

Python 3 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
del Dict ['Charlie']
print(Dict)

Когато стартирате този код, той трябва да отпечата списъка с речници без Чарли.

  • Използвахме кода del Dict
  • Когато кодът се изпълни, той изтрива Чарли от основния речник

Речник items() Метод

Методът items() връща списък от двойки кортежи (ключове, стойност) в речника.

Python 2 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print "Students Name: %s" % Dict.items()

Python 3 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("Students Name: %s" % list(Dict.items()))
  • Използваме метода code items() за нашия Dict.
  • Когато кодът е изпълнен, той връща списък с елементи (ключове и стойности) от речника

Проверете дали даден ключ вече съществува в речник

За даден списък можете също да проверите дали нашият дъщерен речник съществува в основния речник или не. Тук имаме два подречника „Момчета“ и „Момичета“, сега искаме да проверим дали нашият речник Момчета съществува в основния ни „Dict“ или не. За това използваме метода for цикъл с else if метод.

Python 2 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in Boys.keys():
    if key in Dict.keys():
        print True
    else:
        print False

Python 3 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in list(Boys.keys()):
    if key in list(Dict.keys()):
        print(True)
    else:
        print(False)
  • - форлуп в кода проверява всеки ключ в основния речник за ключове за момчета
  • Ако съществува в основния речник, трябва да отпечата true или в противен случай трябва да отпечата false
  • Когато изпълните кода, той ще отпечата „True“ три пъти, тъй като имаме три елемента в нашия речник „Boys“
  • Така че това показва, че „момчетата“ съществуват в основния ни речник (Dict)

Сортиране на речника

В речника можете също да сортирате елементите. Например, ако искаме да отпечатаме името на елементите на нашия речник по азбучен ред, трябва да използваме цикъл for. Той ще сортира съответно всеки елемент от речника.

Python 2 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = Dict.keys()
Students.sort()
for S in Students:
      print":".join((S,str(Dict[S])))

Python 3 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = list(Dict.keys())
Students.sort()
for S in Students:
      print(":".join((S,str(Dict[S]))))
  • Декларирахме променливата students за нашия речник „Dict.“
  • След това използваме кода Students.sort, който ще сортира елемента в нашия речник
  • Но за да сортираме всеки елемент в речника, изпълняваме цикъл for, като декларираме променлива S
  • Сега, когато изпълним кода, for цикълът ще извика всеки елемент от речника и ще отпечата низа и стойността в ред

Python Вградени функции в речника

Речник len() Метод

Функцията len() дава броя на двойките в речника.

Например,

Python 2 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print "Length : %d" % len (Dict)

Python 3 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("Length : %d" % len (Dict))

Когато функцията len (Dict) се изпълни, тя дава изход при „4“, тъй като в нашия речник има четири елемента

Типове променливи

Python не изисква изрично деклариране на резервното пространство в паметта; става автоматично. Използват се присвоените стойности на променлива „=“ със знак за равенство. Кодът за определяне на типа на променливата е „%type (Dict).“

Python 2 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print "variable Type: %s" %type (Dict)

Python 3 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("variable Type: %s" %type (Dict))
  • Използвайте кода %type, за да знаете типа на променливата
  • Когато кодът е изпълнен, той казва, че тип променлива е речник

Python Метод List cmp().

Методът за сравнение cmp() се използва в Python за сравняване на стойности и ключове на два речника. Ако методът връща 0, ако и двата речника са еднакви, 1, ако dic1 > dict2 и -1, ако dict1 < dict2.

Python 2 Пример

Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
print cmp(Girls, Boys)

Python 3 Пример

cmp is not supported in Python 3
  • Имаме две имена в речника, „Момчета“ и „Момичета“.
  • Което и да декларирате първо в кода „cmp(Girls, Boys)“ ще се счита за речник 1. В нашия случай първо декларирахме „Girls“, така че ще се счита за речник 1, а момчетата като речник 2
  • Когато кодът се изпълни, той отпечатва -1, което показва, че нашият речник 1 е по-малък от речник 2.

Речник Str(dict)

С метода Str() можете да направите речник във формат на низ за печат.

Python 2 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print "printable string:%s" % str (Dict)

Python 3 Пример

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("printable string:%s" % str (Dict))
  • Използвайте кода % str (Dict)
  • Той ще върне елементите на речника във формат на низ за печат

Ето списъка с всички методи на речника

Начин на доставка Descriptйон Синтаксис
копие() Копирайте целия речник в нов речник dict.copy()
актуализация () Актуализирайте речник, като добавите нов запис или двойка ключ-стойност към съществуващ запис или като изтриете съществуващ запис. Dict.update([други])
елементи () Връща списък с двойки кортежи (ключове, стойност) в речника. dictionary.items()
вид() Можете да сортирате елементите dictionary.sort()
len () Дава броя на двойките в речника. лен (дикт)
cmp() Сравнете стойностите и ключовете на два речника cmp(dict1, dict2)
Str() Направете речник във формат на низ за печат Str(dict)

Обединяване на речници

Тук ще разберете как да обедините два дадени речника в един речник.

Имам два речника, както е показано по-долу:

Речник1: my_dict1

my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}

Речник 2: my_dict2

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

Нека обединим двата речника my_dict1 и my_dict2 и да създадем един речник с namemy_dict.

Обединете два речника с помощта на метода update().

Методът update() ще ни помогне да обединим един речник с друг. В примера ще актуализираме my_dict1 с my_dict2. След използване на метода update() my_dict1 ще има съдържанието на my_dict2, както е показано по-долу:

my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

my_dict1.update(my_dict2)

print(my_dict1)

Изход:

{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

Обединяване на речници чрез ** метод (От Python 3.5 нататък)

** се нарича Kwargs в Python, и ще работи с Python версия 3.5+. Използвайки **, можем да обединим два речника и той ще върне обединения речник. Използването на ** пред променливата ще замени променливата с цялото й съдържание.

Ето работещ пример за използване на ** за обединяване на две директории.

my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}

my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

my_dict =  {**my_dict1, **my_dict2}

print(my_dict)

Изход:

{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

Тест за членство в речника

Можете да проверите дали даден ключ присъства в речник или не. Този тест може да се извърши само върху ключа на речник, а не върху стойността. Тестът за членство се извършва с помощта на in ключова дума. Когато проверите ключа в речника с помощта на in ключова дума, изразът връща true, ако ключът присъства, и false, ако не.

Ето един пример, който показва тест за членство в речник.

my_dict = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
print("email" in my_dict)
print("location" in my_dict)
print("test" in my_dict)

Изход:

True
True
False

Въпроси и Отговори

Речникът съхранява данните като двойки ключ-стойност, достъпни чрез ключове, докато списъкът съхранява подредени елементи, достъпни чрез числов индекс. Използвайте речници за етикетирани търсения и списъци за подредени последователности.

Не. Ключовете в речника трябва да са уникални. Ако присвоите стойност на съществуващ ключ, новата стойност замества старата. Стойностите обаче могат да се повтарят свободно в различните ключове.

Тъй като Python 3.7, речниците запазват реда на вмъкване, така че елементите се връщат в реда, в който сте ги добавили. По-ранните версии не гарантираха това, така че по-старият код не трябва да разчита на подреждането.

Използвайте цикъл for. Looping над речника директно дава своите ключове; използвайте .values() за четене на стойности и .items() за разопаковане на двойки ключ-стойност, както в: за ключ, стойност в my_dict.items().

Речниковото разбиране изгражда речник в един ред от итерабилен обект, използвайки синтаксиса {ключ: стойност за елемент в итерабилен обект}. Например, {x: x*x за x в диапазон(5)} изгражда речник от типа квадрати.

Речниците съхраняват конфигурационни настройки, хиперпараметри, брой думи и карта на характеристикитеpingМного библиотеки връщат резултати като речници, а JSON се зарежда директно в тях, което ги прави централни за организирането на етикетирани данни в изкуствения интелект и машинното обучение.

Да. Асистентите с изкуствен интелект могат да превърнат CSV редове, JSON или обикновен текст в готов за употреба речников код и да предложат разумна структура на ключовете. Те също така помагат за преоформяне на речници и бързо отстраняване на грешки в ключовете.

Да. GitHub Copilot може да генерира речникови литерали, разбирания и търсения от коментар или име на функция, докато агентните инструменти рефакторират повтарящ се код в речници. Винаги преглеждайте предложенията за правилни ключове и гранични случаи.

Обобщете тази публикация с: