Словари (dict) и работа с ними в python. методы словарей

Python create empty dictionary

One way to create a dictionary is to form an empty dictionary and later add
new pairs.

empty.py

#!/usr/bin/env python

capitals = {}

capitals = "Bratislava"
capitals = "Berlin"
capitals = "Copenhagen"

print(capitals)

The example creates a new empty dictionary and adds new keys and
values.

$ ./empty.py 
{'svk': 'Bratislava', 'dnk': 'Copenhagen', 'deu': 'Berlin'}

This is the output.

Alternatively, we can create a new empty dictionary with the
function.

empty2.py

#!/usr/bin/env python3

capitals = dict()

capitals.update()

print(capitals)

An empty dictionary is created with and new values
are added with

Check if a Key or Value Exists

If you want to know whether a key exists in a dictionary, use in and not in operators with if statement.

To check if a certain value exists in a dictionary, you can use method , which returns the values as a list, and then use the operator.

in Operator on List vs Dictionary

The operator uses different algorithms for lists and dictionaries. For lists, it uses a search algorithm. As the list gets longer, the search time gets longer. For dictionaries, Python uses a different algorithm called Hash Table, which has a remarkable property: the operator takes the same amount of time, regardless of how many items are in the dictionary.

Создание словарей

Литералом словарей служит пара фигурных скобок , так что пустой словарь может быть создан вот так:

Если перечислить через запятую элементы в виде (ключ-значение) и заключить их в фигурные скобки, то мы так же получим словарь:

Создать словарь можно и спомощью встроенной функции . Если вызвать данную функцию без аргументов, то будет возвращен пустой словарь:

Однако, данная функция может работать и с прямым присваиванием ключам элементов их значений:

Обратите внимание, что в перечислении именованных аргументов функции будущие ключи элементов словаря указываются без апострофов. Такой способ создания словаря очень хорош, если в качестве ключей могут использоваться только строки (а точнее допустимые идентификаторы имен переменных).. Еще один способ создания словарей заключается в том что бы передать функции список с кортежами пар «ключ-значение»:

Еще один способ создания словарей заключается в том что бы передать функции список с кортежами пар «ключ-значение»:

Кстати, функции можно передать итератор, который возвращает функция

Можно в качестве аргумента передать генератор списков или любой другой итератор, который возвращает кортежи с парами «ключ-значение»:

Ну и наконец, функции может быть передан словарь, который возвращается как бы без изменений, но на самом деле возвращается его поверхностная копия:

Создавая словари, необходимо следить за тем что бы их ключи были уникальными. Если в словарь добавляется новый элемент с уже существующим в словаре ключом, то это приведет обновлению значения:

А вот значениями элементов могут быть абсолютно любые объекты языка Python, в том числе и одинаковые элементы:

Updating Dictionary

You can also update a dictionary by adding a new entry or a key-value pair to an existing entry or by deleting an existing entry. Here in the example, we will add another name, «Sarah» to our existing dictionary.

Python 2 Example

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

Python 3 Example

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
Dict.update({"Sarah":9})
print(Dict)
  • Our existing dictionary «Dict» does not have the name «Sarah.»
  • We use the method Dict.update to add Sarah to our existing dictionary
  • Now run the code, it adds Sarah to our existing dictionary

Delete Keys from the dictionary

Python dictionary gives you the liberty to delete any element from the dictionary list. Suppose you don’t want the name Charlie in the list, so you can remove the key element by the following code.

Python 2 Example

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

Python 3 Example

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

When you run this code, it should print the dictionary list without Charlie.

  • We used the code del Dict
  • When code executed, it has deleted the Charlie from the main dictionary

Dictionary items() Method

The items() method returns a list of tuple pairs (Keys, Value) in the dictionary.

Python 2 Example

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

Python 3 Example

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
print("Students Name: %s" % list(Dict.items()))
  • We use the code items() method for our Dict.
  • When code was executed, it returns a list of items ( keys and values) from the dictionary

Операции над словарями Python

Если словарь, содержащий полный набор данных, большой, то разумнее использовать список lowscores, который мы только что скомпилировали, чтобы создать совершенно новый словарь (Python список в словарь). Преимущество этого приема заключается в том, что для дальнейшего анализа не нужно хранить в памяти большой словарь. Можно просто перейти к соответствующему подмножеству исходных данных.

Во-первых, мы используем ключи, хранящиеся в lowscores, для создания нового словаря. Чтобы сделать это, есть два способа: первый — извлекаем только соответствующие элементы из исходного словаря с помощью метода .get(), оставляя исходный словарь без изменений. Второй — использовать метод .pop(), который удаляет извлеченные записи из исходного словаря.

Код для подмножества может выглядеть следующим образом: subset = dict(). Такое написание может показаться незнакомым, потому что цикл задан одной строкой кода. Этот стиль называется «генерацией словаря». На самом деле это цикл for, который перебирает элементы lowscores, извлекает значения из отзывов и использует их для заполнения нового словаря.

Вы можете сравнить традиционный стиль с использованием цикла и генерацию словаря и убедиться, что они действительно дают идентичный результат:

# Метод с использованием цикла for для создания подмножества словаря
forloop = {}
for k in lowscores:
  forloop = reviews
# Добавляем специальный метод извлечения релевантных элементов из словаря `reviews`
dictcomp = {k : reviews.___(k) for k in lowscores}
# Удостоверимся, что эти объекты аналогичны
print(forloop == ________)

Предположим, что теперь вы хотите изменить словарь Python 3, чтобы оценки выступали в качестве ключей словаря, а не идентификаторов. Можно использовать для этого цикл for, указав как ключи, так и значения, и создав новый вложенный словарь. Нужно будет извлечь «score» из исходного вложенного словаря, чтобы использовать его в качестве нового ключа.

Чтобы упростить код, мы создаем в отдельной строке новый вложенный словарь как новый объект newvalues. После чего заполняем scoredict идентификаторами в качестве ключей и объектами из словаря newvalues в качестве значений:

from collections import defaultdict
scoredict = defaultdict(list)
for key, value in reviews.items():
  newvalues = {'id' : key, "title" : value, "review" : value}
  # Используем 'score' из значений (!) из исходного словаря в качестве ключей для только что созданного  словаря
  scoredict].append(newvalues)

# Выводим ключи словаря, чтобы удостовериться, что это на самом деле оценки из отзывов
print(scoredict.keys())

Удаление элемента из множеств

Python позволяет нам удалять элемент из множества, но не используя индекс, так как множество элементов не индексированы. Элементы могут быть удалены при помощи обоих методов и .

Помните, что метод не будет выдавать ошибку, если элемент не был найден во множестве. Однако, если метод используется и элемент не был найден, возникнет ошибка.

Давайте продемонстрируем как удалять элемент при помощи метода :

Python

num_set = {1, 2, 3, 4, 5, 6}
num_set.discard(3)
print(num_set)

1
2
3

num_set={1,2,3,4,5,6}

num_set.discard(3)

print(num_set)

Результат:

Python

{1, 2, 4, 5, 6}

1 {1,2,4,5,6}

Элемент был удален из множества.

Аналогично, метод может использоваться следующим образом:

Python

num_set = {1, 2, 3, 4, 5, 6}
num_set.remove(3)
print(num_set)

1
2
3

num_set={1,2,3,4,5,6}

num_set.remove(3)

print(num_set)

Результат:

Python

{1, 2, 4, 5, 6}

1 {1,2,4,5,6}

Теперь попробуем удалить элемент, которого нет во множестве. Сначала используем метод :

Python

num_set = {1, 2, 3, 4, 5, 6}
num_set.discard(7)
print(num_set)

1
2
3

num_set={1,2,3,4,5,6}

num_set.discard(7)

print(num_set)

Результат:

Python

{1, 2, 3, 4, 5, 6}

1 {1,2,3,4,5,6}

Выдача выше показывает, что никакого воздействия на множество не было оказано. Теперь посмотрим, что выйдет из использования метода по аналогичному сценарию:

Python

num_set = {1, 2, 3, 4, 5, 6}
num_set.remove(7)
print(num_set)

1
2
3

num_set={1,2,3,4,5,6}

num_set.remove(7)

print(num_set)

Результат:

Python

Traceback (most recent call last):
File «C:\Users\admin\sets.py», line 2, in <module>
num_set.remove(7)
KeyError: 7

1
2
3
4

Traceback(most recent call last)

File»C:\Users\admin\sets.py»,line2,in<module>

num_set.remove(7)

KeyError7

Выдача показывает, что метод выдал ошибку KeyError, так как мы пытались удалить элемент, которого нет во множестве.

С методом , мы можем удалить и вернуть элемент. Так как элементы находятся в произвольном порядке, мы не можем утверждать или предсказать, какой элемент будет удален.

Например:

Python

num_set = {1, 2, 3, 4, 5, 6}
print(num_set.pop())

1
2

num_set={1,2,3,4,5,6}

print(num_set.pop())

Результат:

Python

1

1 1

Вы можете использовать тот же метод при удалении элемента и возврате элементов, которые остаются во множестве. Например:

Python

num_set = {1, 2, 3, 4, 5, 6}
num_set.pop()
print(num_set)

1
2
3

num_set={1,2,3,4,5,6}

num_set.pop()

print(num_set)

Результат:

Python

{2, 3, 4, 5, 6}

1 {2,3,4,5,6}

Эти элементы остаются во множестве.

Метод Python под названием поможет удалить все элементы во множестве. Например:

Python

num_set = {1, 2, 3, 4, 5, 6}
num_set.clear()
print(num_set)

1
2
3

num_set={1,2,3,4,5,6}

num_set.clear()

print(num_set)

Результатом является пустой без каких-либо элементов внутри.

Check if a given key already exists in a dictionary

For a given list, you can also check whether our child dictionary exists in the main dictionary or not. Here we have two sub-dictionaries «Boys» and «Girls», now we want to check whether our dictionary Boys exist in our main «Dict» or not. For that, we use the for loop method with else if method.

Python 2 Example

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

Python 3 Example

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in list(Dict.keys()):
    if key in list(Boys.keys()):
        print(True)
    else:       
        print(False)
  • The forloop in code checks each key in the main dictionary for Boys keys
  • If it exists in the main dictionary, it should print true or else it should print false
  • When you execute the code, it will print «True» for three times, as we got three elements in our «Boys» dictionary
  • So it indicates that the «Boys» exist in our main dictionary (Dict)

Sorting the Dictionary

In the dictionary, you can also sort the elements. For example, if we want to print the name of the elements of our dictionary alphabetically, we have to use the for a loop. It will sort each element of the dictionary accordingly.

Python 2 Example

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)))

Python 3 Example

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))))
  • We declared the variable students for our dictionary «Dict.»
  • Then we use the code Students.sort, which will sort the element inside our dictionary
  • But to sort each element in the dictionary, we run the for a loop by declaring variable S
  • Now, when we execute the code, the for loop will call each element from the dictionary, and it will print the string and value in an order

Python Dictionary Tutorial — Series:

  1. What is a Dictionary in Python & why do we need it?
  2. Creating Dictionaries in Python
  3. Iterating over dictionaries
  4. Check if a key exists in dictionary
  5. Check if a value exists in dictionary
  6. Get all the keys in Dictionary
  7. Get all the Values in a Dictionary
  8. Remove a key from Dictionary
  9. Add key/value pairs in Dictionary
  10. Find keys by value in Dictionary
  11. Filter a dictionary by conditions
  12. Print dictionary line by line
  13. Convert a list to dictionary
  14. Sort a Dictionary by key
  15. Sort a dictionary by value in descending or ascending order
  16. Dictionary: Shallow vs Deep Copy
  17. Remove keys while Iterating
  18. Get all keys with maximum value
  19. Merge two or more dictionaries in python

The complete example is as follows,

def main():

    '''
    Creating empty Dictionary
    '''
    # Creating an empty dict using empty brackets
    wordFrequency = {}
    
    # Creating an empty dict using dict()
    wordFrequency = dict()
    
    print(wordFrequency)
    
    '''
    Creating Dictionaries with literals
    '''                                  
    wordFrequency = {
        "Hello" : 7,
        "hi" : 10,
        "there" : 45,
        "at" : 23,
        "this" : 77
        }
    
    print(wordFrequency)
    
 
    '''
    Creating Dictionaries by passing parametrs in dict constructor
    '''
    wordFrequency = dict(Hello =  7, 
                         hi    = 10,
                         there  = 45,
                         at    = 23,
                         this  = 77
                         )
    
    print(wordFrequency)
    
    
    '''
    Creating Dictionaries by a list of tuples
    '''

    # List of tuples    
    listofTuples = 
    
    # Creating and initializing a dict by tuple
    wordFrequency = dict(listofTuples)
        
    print(wordFrequency)    
    
    
    '''
    Creating Dictionary by a list of keys and initialzing all with same value
    '''    
    
    listofStrings = 
    
    # create and Initialize a dictionary by this list elements as keys and with same value 0
    
    wordFrequency = dict.fromkeys(listofStrings,0 )
        
    print(wordFrequency)

    '''
    Creating a Dictionary by a two lists
    '''         
    # List of strings
    listofStrings = 
    
    # List of ints
    listofInts = 

    # Merge the two lists to create a dictionary
    wordFrequency = dict( zip(listofStrings,listofInts ))
    
    print(wordFrequency)

if __name__ == "__main__":
    main()

Output:

{}
{'hi': 10, 'there': 45, 'this': 77, 'at': 23, 'Hello': 7}
{'there': 45, 'hi': 10, 'this': 77, 'at': 23, 'Hello': 7}
{'hi': 10, 'there': 45, 'this': 77, 'at': 23, 'Hello': 7}
{'hi': 0, 'there': 0, 'this': 0, 'at': 0, 'Hello': 0}
{'hi': 10, 'there': 45, 'this': 77, 'at': 23, 'Hello': 7}

Поверхностные и глубокие копии словарей

Иногда может получиться так, что несколько ссылок могут ссылаться на один и тот же словарь, в этом случае изменение словаря по одной переменной приведет к тому, что другие переменные уже не будут ссылаться на прежние данные:

Сейчас и ссылаются на один и тот же словарь, теперь изменим словарь посредством переменной :

Но и теперь ссылается на тот же самый словарь:

Если необходимо что бы переменные ссылались на разные данные, то можно выполнить поверхностную копию, с помощью метода :

Однако, поверхностное копирование не позволяет скопировать данные из вложенных списков и словарей:

Если мы сейчас присвоим поверхностную копию переменной , то мы получим два словаря, вложенные структуры которых все равно будут ссылаться на одни и теже данные:

Но данные вложенного списка и словаря являются общими:

Что бы выполнить глубокое (полное) копирование данных и всех вложенных структур, можно воспользоваться модулем из стандартной библиотеки. Сначала импортируем его:

А затем, с помощью функции выполняем глубокое копирование:

После чего мы получаем два, совершенно никак не связанных словаря:

Conclusion

You now know the basics of how to iterate through a dictionary in Python, as well as some more advanced techniques and strategies!

You’ve learned:

  • What dictionaries are, as well as some of their main features and implementation details
  • What the basic ways to iterate through a dictionary in Python are
  • What kind of tasks you can accomplish by iterating through a dictionary in Python
  • How to use some more elaborated techniques and strategies to iterate through a dictionary in Python

You have the tools and knowledge you’ll need to get the most out of dictionaries in Python. This will help you be more efficient and effective in your use of dictionary iteration in the future.

Практическая работа

  1. Создайте словарь, связав его с переменной school, и наполните данными, которые бы отражали количество учащихся в разных классах (1а, 1б, 2б, 6а, 7в и т. п.). Внесите изменения в словарь согласно следующему: а) в одном из классов изменилось количество учащихся, б) в школе появился новый класс, с) в школе был расформирован (удален) другой класс. Вычислите общее количество учащихся в школе.

  2. Создайте словарь, где ключами являются числа, а значениями – строки. Примените к нему метод , полученный объект передайте в написанную вами функцию, которая создает и возвращает новый словарь, «обратный» исходному, т. е. ключами являются строки, а значениями – числа.

Dictionary Membership Test

You can test if a key in the present inside a dictionary or not. This test can be performed only on the key of a dictionary and not the value. The membership test is done using the in keyword. When you check the key in the dictionary using the in keyword, the expression returns true if the key is present and false if not.

Here is an example that shows member ship test on a dictionary.

my_dict = {"username": "XYZ", "email": "This email address is being protected from spambots. You need JavaScript enabled to view it.", "location":"Mumbai"}
print("email" in my_dict)
print("location" in my_dict)
print("test" in my_dict)

Output:

True
True
False

Summary:

  • Dictionaries in a programming language is a type of data-structure used to store information connected in some way.
  • Python Dictionary are defined into two elements Keys and Values.
  • Dictionaries do not store their information in any particular order, so you may not get your information back in the same order you entered it.
  • Keys will be a single element
  • Values can be a list or list within a list, numbers, etc.
  • More than one entry per key is not allowed ( no duplicate key is allowed)
  • The values in the dictionary can be of any type, while the keys must be immutable like numbers, tuples, or strings.
  • Dictionary keys are case sensitive- Same key name but with the different cases are treated as different keys in Python dictionaries.

Работа с элементами словаря

Основная операция: получение значения элемента по ключу, записывается так же, как и для
списков: . Если элемента с заданным ключом нет в словаре,
то возникает исключение .

Другой способ определения значения по ключу — метод :
. Если элемента с ключом нет в словаре,
то возвращается значение . В форме записи с двумя аргументами
метод возвращает значение ,
если элемент с ключом отсутствует в словаре.

Проверить принадлежность элемента словарю можно операциями
и , как и для множеств.

Для добавления нового элемента в словарь нужно просто присвоить ему какое-то значение:
.

Для удаления элемента из словаря можно использовать операцию
(операция возбуждает исключение , если такого ключа в словаре нет.
Вот два безопасных способа удаления элемента из словаря.

A = {'ab' : 'ba', 'aa' : 'aa', 'bb' : 'bb', 'ba' : 'ab'}

key = 'ac'
if key in A:
    del A

try:
    del A
except KeyError:
	print('There is no element with key "' + key + '" in dict')
print(A)

В первом случае мы предварительно проверяем наличие элемента, а во втором — перехватываем и обрабатываем исключение.

Еще один способ удалить элемент из словаря: использование метода :
. Этот метод возвращает значение удаляемого элемента, если
элемент с данным ключом отсутствует в словаре, то возбуждается исключение. Если
методу передать второй параметр, то если элемент в словаре отсутствует,
то метод возвратит значение этого параметра. Это позволяет
проще всего организовать безопасное удаление элемента из словаря: .

Access Dictionary Items

The order of pairs is not always the same. In fact, if you write the same example on another PC, you may get a different result. In general, the order of items in a dictionary is unpredictable.

But this is not a problem because the items of a dictionary are not indexed with integer indices. Instead, you use the keys to access the corresponding values.

You can fetch a value from a dictionary by referring to its key in square brackets .

If you refer to a key that is not in the dictionary, you’ll get an exception.

To avoid such exception, you can use the special dictionary get() method. This method returns the value for key if key is in the dictionary, else , so that this method never raises a .

Using Comprehensions

A dictionary comprehension is a compact way to process all or part of the elements in a collection and return a dictionary as a results. In contrast to list comprehensions, they need two expressions separated with a colon followed by and (optional) clauses. When a dictionary comprehension is run, the resulting key-value pairs are inserted into a new dictionary in the same order in which they were produced.

Suppose, for example, that you have two lists of data, and you need to create a new dictionary from them. In this case, you can use Python’s to loop over the elements of both lists in pairs:

>>>

Here, receives two iterables ( and ) as arguments and makes an iterator that aggregates elements from each iterable. The objects generated by are then unpacked into and , which are finally used to create the new dictionary.

Dictionary comprehensions open up a wide spectrum of new possibilities and provide you with a great tool to iterate through a dictionary in Python.

Properties of Dictionary Keys

Dictionary values have no restrictions. They can be any arbitrary Python object, either standard objects or user-defined objects. However, same is not true for the keys.

There are two important points to remember about dictionary keys −

(a) More than one entry per key is not allowed. This means no duplicate key is allowed. When duplicate keys are encountered during assignment, the last assignment wins. For example −

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print ("dict: ", dict)

When the above code is executed, it produces the following result −

dict:  Manni

(b) Keys must be immutable. This means you can use strings, numbers or tuples as dictionary keys but something like is not allowed. Following is a simple example −

#!/usr/bin/python3

dict = {: 'Zara', 'Age': 7}
print ("dict: ", dict)

When the above code is executed, it produces the following result −

Traceback (most recent call last):
   File "test.py", line 3, in <module>
      dict = {: 'Zara', 'Age': 7}
TypeError: list objects are unhashable

Методы словарей в Python

Перечислим основные словарные методы, которые помогут вам при работе с этим типом данных.

  • clear() – очищает заданный словарь, приводя его к пустому.
  • get() – отдаёт значение словаря по указанному ключу. Если ключ не существует, а в качестве дополнительного аргумента передано значение по умолчанию, то метод вернет его. Если же значение по умолчанию опущено, метод вернет None.
  • items() – возвращает словарные пары ключ:значение, как соответствующие им кортежи.
  • keys() – возвращает ключи словаря, организованные в виде списка.
  • values() – подобным образом, возвращает список значений словаря.
  • pop() – удалит запись словаря по ключу и вернет её значение.
  • popitem() – выбрасывает пару ключ:значение из словаря и возвращает её в качестве кортежа. Такие пары возвращаются в порядке LIFO.
  • update() – реализует своеобразную операцию конкатенации для словарей. Он объединяет ключи и значения одного словаря с ключами и значениями другого. При этом если какие-то ключи совпадут, то результирующим значением станет значение словаря, указанного в качестве аргумента метода update.
  • copy() – создает полную копию исходного словаря.

Примеры:

Iterating Destructively With .popitem()

Sometimes you need to iterate through a dictionary in Python and delete its items sequentially. To accomplish this task, you can use , which will remove and return an arbitrary key-value pair from a dictionary. On the other hand, when you call on an empty dictionary, it raises a .

If you really need to destructively iterate through a dictionary in Python, then can be useful. Here’s an example:

Here, you used a loop instead of a loop. The reason for this is that it’s never safe to iterate through a dictionary in Python if you pretend to modify it this way, that is, if you’re deleting or adding items to it.

Inside the loop, you defined a block to catch the raised by when turns empty. In the block, you process the dictionary, removing an item in each iteration. The variable keeps a reference to the successive items and allows you to do some actions with them.

Note: In the previous code example, you used Python’s f-strings for string formatting. If you want to dive deeper into f-strings, then you can take a look at Python 3’s f-Strings: An Improved String Formatting Syntax (Guide).

If you run this script from your command-line, then you’ll get the following results:

Python Dictionary Methods

Methods that are available with a dictionary are tabulated below. Some of them have already been used in the above examples.

Method Description
clear() Removes all items from the dictionary.
copy() Returns a shallow copy of the dictionary.
fromkeys(seq) Returns a new dictionary with keys from seq and value equal to v (defaults to ).
get(key) Returns the value of the key. If the key does not exist, returns d (defaults to ).
items() Return a new object of the dictionary’s items in (key, value) format.
keys() Returns a new object of the dictionary’s keys.
pop(key) Removes the item with the key and returns its value or d if key is not found. If d is not provided and the key is not found, it raises .
popitem() Removes and returns an arbitrary item (key, value). Raises if the dictionary is empty.
setdefault(key) Returns the corresponding value if the key is in the dictionary. If not, inserts the key with a value of d and returns d (defaults to ).
update() Updates the dictionary with the key/value pairs from other, overwriting existing keys.
values() Returns a new object of the dictionary’s values

Here are a few example use cases of these methods.

Output

{'Math': 0, 'English': 0, 'Science': 0}
('Math', 0)
('English', 0)
('Science', 0)

Important Properties of a Dictionary

Dictionaries are pretty straightforward, but here are a few points you should be aware of when using them.

Keys must be unique:

A key can appear in a dictionary only once.

Even if you specify a key more than once during the creation of a dictionary, the last value for that key becomes the associated value.

Notice that the first occurrence of ‘name’ is replaced by the second one.

Key must be immutable type:

You can use any object of immutable type as dictionary keys – such as numbers, strings, booleans or tuples.

An exception is raised when mutable object is used as a key.

Value can be of any type:

There are no restrictions on dictionary values. A dictionary value can be any type of object and can appear in a dictionary multiple times.

Задания для самоподготовки

1. Пользователь
вводит произвольные целые числа и нужно создать словарь, у которого ключами
будут только четные числа, а значениями – квадраты этих чисел.

2. Пусть имеется
вот такая строка:

«int= целое число, dict=словарь, list=список, str=строка, bool=булевый
тип»

Требуется из нее
создать словарь с ключами:

int, dict, list, str, bool

и
соответствующими значениями.

3. Пользователь
вводит с клавиатуры M раз данные в формате:

английское
слово: перевод1, перевод2, …, переводN

каждую введенную
строку необходимо преобразовать и поместить в словарь, у которого ключом будет
английское слово, а значением список:

Видео по теме

Python 3 #1: установка и запуск интерпретатора языка

Python 3 #2: переменные, оператор присваивания, типы данных

Python 3 #3: функции input и print ввода/вывода

Python 3 #4: арифметические операторы: сложение, вычитание, умножение, деление, степень

Python 3 #5: условный оператор if, составные условия с and, or, not

Python 3 #6: операторы циклов while и for, операторы break и continue

Python 3 #7: строки — сравнения, срезы строк, базовые функции str, len, ord, in

Python 3 #8: методы строк — upper, split, join, find, strip, isalpha, isdigit и другие

Python 3 #9: списки list и функции len, min, max, sum, sorted

Python 3 #10: списки — срезы и методы: append, insert, pop, sort, index, count, reverse, clear

Python 3 #11: списки — инструмент list comprehensions, сортировка методом выбора

Python 3 #12: словарь, методы словарей: len, clear, get, setdefault, pop

Python 3 #13: кортежи (tuple) и операции с ними: len, del, count, index

Python 3 #14: функции (def) — объявление и вызов

Python 3 #15: делаем «Сапер», проектирование программ «сверху-вниз»

Python 3 #16: рекурсивные и лямбда-функции, функции с произвольным числом аргументов

Python 3 #17: алгоритм Евклида, принцип тестирования программ

Python 3 #18: области видимости переменных — global, nonlocal

Python 3 #19: множества (set) и операции над ними: вычитание, пересечение, объединение, сравнение

Python 3 #20: итераторы, выражения-генераторы, функции-генераторы, оператор yield

Python 3 #21: функции map, filter, zip

Python 3 #22: сортировка sort() и sorted(), сортировка по ключам

Python 3 #23: обработка исключений: try, except, finally, else

Python 3 #24: файлы — чтение и запись: open, read, write, seek, readline, dump, load, pickle

Python 3 #25: форматирование строк: метод format и F-строки

Python 3 #26: создание и импорт модулей — import, from, as, dir, reload

Python 3 #27: пакеты (package) — создание, импорт, установка (менеджер pip)

Python 3 #28: декораторы функций и замыкания

Python 3 #29: установка и порядок работы в PyCharm

Python 3 #30: функция enumerate, примеры использования

Accessing Values in Dictionary

To access dictionary elements, you can use the familiar square brackets along with the key to obtain its value. Following is a simple example −

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ("dict: ", dict)
print ("dict: ", dict)

When the above code is executed, it produces the following result −

dict:  Zara
dict:  7

If we attempt to access a data item with a key, which is not a part of the dictionary, we get an error as follows −

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print ("dict: ", dict)

When the above code is executed, it produces the following result −

dict:
Traceback (most recent call last):
   File "test.py", line 4, in <module>
      print "dict: ", dict;
KeyError: 'Alice'
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector