В предыдущем разделе мы узнали о словарных методах. В этой главе мы узнаем о гибридных словарях, обходе словаря и выводе словарей.
Так называемый смешанный словарь означает, что данные, хранящиеся в словаре, представляют собой смесь различных типов. Ключи должны быть неизменяемыми типами данных, но значения могут быть объектами любого типа.
Давайте сначала посмотрим на смешанный словарь:
my_dcit={'Сяо Мин': ['Рост: 170 см', 'Вес: 65 кг'], 'Сяо Ли': 'Люблю учиться, люблю спорт', 'Сяохуа': ('Проживание: Сучжоу', 'Место рождения: Шанхай ')}
Значения этого словаря состоят из списков, строк и кортежей. Мы можем получить доступ к этому смешанному словарю с помощью метода из предыдущего раздела. Посмотрите на следующий фрагмент кода
my_dcit={'Сяо Мин': ['Рост: 170 см', 'Вес: 65 кг'], 'Сяо Ли': 'Люблю учиться, люблю спорт', 'Сяохуа': ('Проживание: Сучжоу', 'Место рождения: Шанхай ')}print('Ключ доступа='Сяо Мин'->',my_dcit['Сяо Мин'])print('Ключ доступа='Сяохуа'->',my_dcit['Сяо Ли'])print(' Доступ key='Xiaohua'->',my_dcit['Xiaohua'])print('itmes() метод:',my_dcit.items())#Общий доступ print('keys() метод:',my_dcit.keys() )#Доступ только ко всем keyprint('values() метод:',my_dcit.values())#Доступ только к valueprint('get() метод:',my_dcit.get('Xiao Ming'))#get Метод для доступа к указанный ключ my_dcit.pop('Xiao Ming') #Этот шаг представляет собой метод pop(), который удалит парные элементы с ключом = 'Xiao Ming' print('my_dict после метода pop(): ', my_dcit) # Просмотр словаря после удаления
Взгляните на вывод:
Ключ доступа='Сяо Мин'->['Рост: 170 см', 'Вес: 65 кг'] Ключ доступа='Сяохуа'->Люблю учиться, люблю спорт, ключ доступа='Сяохуа'->('Резиденция: Сучжоу ', 'Место рождения: Шанхай') метод itmes(): dict_items([('Сяо Мин', ['Рост: 170 см', 'Вес: 65 кг']), ('Сяо Ли', 'Люблю учиться, люблю спорт' ), ('Сяохуа',('Резиденция: Сучжоу', 'Место рождения: Шанхай'))])keys() метод: dict_keys(['Сяомин','Сяоли','Сяохуа'])values() метод: dict_values([ ['Рост: 170 см', 'Вес: 65 кг'], 'Люблю учиться, люблю спорт', ('Проживание: Сучжоу', 'Место рождения: Шанхай')]) get() метод :['Рост: 170 см', ' Вес: 65 кг'] my_dict после метода pop(): {'Сяо Ли': 'Люблю учиться, люблю спорт', 'Сяохуа': («Проживание: Сучжоу», «Место рождения: Шанхай»)}
Когда мы используем словари, нам часто приходится просматривать словарь. Обычно мы используем цикл for для обхода всех ключей в словаре.
Давайте посмотрим на обходной доступ в целом:
>>>my_dict={1001:'Xiaoming',1002:'Xiaohua',1003:'Xiaozhang'}>>>foriinmy_dict:print(i,my_dict[i])#Выходной ключ и значение, соответствующее ключу 1001Xiao Ming 1002 Сяохуа 1003 Сяо Чжан
Мы также будем использовать метод items() для получения пар элементов при получении объекта.
>>>my_dict={1001:'Сяо Мин',1002:'Сяо Хуа',1003:'Сяо Чжан'}>>>foriinmy_dict.items():print(i)(1001,'Сяо Мин')(1002 , 'Сяохуа') (1003, 'Сяо Чжан')
Этот метод доступа представляет собой пару данных в противоположном словаре, а результат вывода выводится в виде кортежа. При этом ключ и значение каждого обхода можно получить напрямую посредством обхода цикла.
>>>my_dict={1001:'Сяо Мин',1002:'Сяо Хуа',1003:'Сяо Чжан'}>>>fori,jinmy_dict.items():print('соответствующий ключ:',i,'соответствующий значение :',j) Соответствующий ключ: 1001 Соответствующее значение: Сяо Мин Соответствующий ключ: 1002 Соответствующее значение: Сяо Хуа Соответствующий ключ: 1003 Соответствующее значение: Сяо Чжан
Наконец, потренируйтесь в обходе словаря с помощью упражнений.
Я уже знакомился с выводом списков. Вывод кортежей аналогичен выводу списков без особого введения, поскольку словари являются относительно особенными. Здесь мы объясним вывод по словарю.
Давайте сначала рассмотрим простое использование.
>>>my_dict={i:'dotcpp'foriinrange(1,5)}>>>my_dict{1:'dotcpp',2:'dotcpp',3:'dotcpp',4:'dotcpp'}
Здесь мы рассмотрим структуру вывода словаря. Первая часть эквивалентна использованию «dotcpp» для присвоения объекта значения каждого i. Мы также можем сначала определить список и присвоить ему значение в списке.
>>>my_list=[10,20,30,40,50]>>>my_dict={i:my_list[i]foriinrange(1,5)}>>>my_dict{1:20,2:30,3: 40,4:50}
Посмотрите на картинку ниже:
При использовании вывода по словарю основной проблемой является сопоставление ключей и значений. После того, как мы изучим эту функцию позже, мы сможем использовать функцию zip() для более удобного объединения словарей. Мы не будем здесь вдаваться в подробности.
Пользователю необходимо ввести общую сумму активов, например: 3000, затем отображается список корзины покупок и рассчитывается общая сумма товаров в корзине. Если общая сумма товаров превышает общую сумму активов, выдаст сообщение о том, что баланс счета недостаточен. В противном случае покупка прошла успешно. Список корзины покупок выглядит следующим образом: cars=[{name: кровать, цена: 1999, "num": 1}, {name: подушка, цена: 10, "num": 2}, {name: одеяло, цена: 20, «число»:1}].
Решение в конце.
Словари являются относительно часто используемой структурой данных при изучении Python. Однако из-за его уникальности в вопросах конкурса о словарях может быть относительно мало слов, но больше в курсах обучения и проверках Python. При хранении данных мы можем использовать словари, чтобы помочь нам. точно находите соответствующие данные, а умелое освоение списков и словарей может помочь нам лучше изучить Python.
тележки=[{имя:кровать,цена:1999,"номер":1},{имя:подушка,цена:10,"номер":2},{имя:одеяло,цена:20,"номер":1} ]. m=int(input())sum=0foriinrange(len(carts)):sum=carts[i]['price']*carts[i]['num']+sumifm>=sum:print('Покупка успешна ')else:print('Баланс счета недостаточен')