Речник в 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

Oбобщение

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