这一章新学习了关于字典的新知识点。遇到的问题如下:
6-1:容易把字典中的冒号写成等号,容易忘记逗号;
6-2:加上了字典中的循环,但是好像第二种方式遇到了问题;当同时对键值进行遍历的时候,出现了“too many values to unpack”这个报错,
经过查询解释如下:原因是字典这个是一个迭代器对象,参考官方文档找到下列说明,字典只支持Key的遍历,,如果想对key,value,则可以使用items()方法。
6-3:即使遍历字典的时候,键-值对的返回顺序也与存储顺序不同,Python不关心键-值对的存储顺序,而只跟踪键值之间的关联关系;
6-4:在不需要遍历字典中的值是,可以使用方法keys();也可以不使用任何方法,因为遍历字典时,会默认遍历所有的键;使用方法keys(),其实返回的是一个包含所有键的列表;
如果感兴趣的只是值,可以用方法values();
6-7:总是忘记每个字典元素后面的逗号
6-8:注意在列表中存储字典的时候,不需要加上引号,
遇到了错误:" no encoding declared",解释是:python的默认编码文件是用的ASCII码,将文件存成了UTF-8,编译就可以通过。或在在py文件开头(必须是第一行)加入:#coding=utf-8 / # -*- coding:utf-8 -*-
6-9:在字典的值中用列表表示
【题目】
#6-1
person_info = {
'first_name': 'Alice',
'last_name': 'Xu',
'age': 21,
'city': 'Guangzhou',
}
print(person_info)
#6-2: circle of dictionary
liked_numbers = {
'jack': 1,
'alice': 2,
'nancy': 3,
'john': 4,
'mike': 5,
}
for key in liked_numbers:
print(key.title() + ", is " +
str(liked_numbers[key]) +
" you favorite number")
for key, value in liked_numbers.items():
print(key.title() + ", is " +
str(value) +
" you favorite number")
#6-3
d = {
'print:' : 'show th message',
'list:' : 'storage elements',
'dictionary:' : 'storage key and value'}
for key, value in d.items():
print(key + "\n" + value)
#6-5
rivers = {
'riverA': 'countryA',
'riverB': 'countryB',
'riverC': 'countryC',
}
for river, country in rivers.items():
print('The ' + river.title() +
' runs through ' + country.title() + '.')
for river in rivers.keys():
print(river)
for country in rivers.values():
print(country)
#6-6:
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'phil': 'python',
}
name_list = ['jen', 'sarah', 'phil', 'mike', 'tiffany']
for name in name_list:
if name in favorite_languages.keys():
print(name.title() + ', thanks for your help.')
else:
print(name.title() + ', welcome to join our investigation.')
#6-7
people = {
'person1': {
'first_name': 'Alice',
'last_name': 'Xu',
'age': 21,
'city': 'Guangzhou',
},
'person2': {
'first_name': 'Jack',
'last_name': 'Hu',
'age': 20,
'city': 'Henan',
},
'person3': {
'first_name': 'Sid',
'last_name': 'Zhou',
'age': 22,
'city': 'Hubei',
}
}
for name, people_info in people.items():
print('\nPeople: ' + name)
full_name = people_info['first_name'] + ' ' + people_info['last_name']
print('\tFull name: ' + full_name.title())
print('\tAge: ' + str(people_info['age']))
print('\tCity: ' + people_info['city'])
#6-8
kiki = {'varies': 'dog', 'master_name': 'Lucy'}
harro = {'varies': 'cat', 'master_name':'Simon'}
dudu = {'varies': 'dog', 'master_name': 'zhouzhou'}
pets = [kiki, harro, dudu]
for pet in pets:
print(pet)
#6-9
favorite_places = {
'Jack': ['A', 'B', 'C'],
'Tiffany': ['D', 'E'],
'Lucy': ['F', 'G', 'H'],
}
for name, places in favorite_places.items():
print('Name: ' + name)
print('Pleces: ')
for place in places:
print('\t' + place)