学习笔记:
# 一个简单的字典
alien_0={'color':'green','points':'5'}
print(alien_0['color'])
print(alien_0['points'])
#6.2 使用字典
## 字典是一系列键—值对,每个键都有一个值相关联,,,键和值之间用冒号分隔,键—值对之间用逗号分隔,
#6.2.1 访问字典中的值
print(alien_0['color'])
## 获取与键相关联的值,可依次指定字典名和放在括号内的键,,将返回字典alien_0中与‘color’的值
new_points=alien_0['points']
print("you just earned "+ str(new_points)+" points!")
#6.2.2 添加键—值对
alien_0={'color':'green','points':'5'}
print(alien_0)
alien_0['x_position']=0
alien_0['y_position']=25
print(alien_0)
## 将键进行赋值
#6.2.3 先创建一个空字典
alien_0={}
alien_0['color']='green'
alien_0['points']=6
print(alien_0)
#6.2.4 修改字典的颜色
alien_0={'color':'green'}
print(alien_0)
print("修改颜色")
alien_0['color']='yello'
print(alien_0)
alien_0={'x_position':0,'y_position':25,'speed':'medium'}
print('original x_position is '+str(alien_0['x_position']))
if alien_0['speed']=='slow':
x_increment=1
elif alien_0['speed']=='medium':
x_increment=2
else:
x_increment=3
alien_0['x_position']=alien_0['x_position']+x_increment
print("new x_position is "+str( alien_0['x_position']))
## 首先定义了一个外星人,包含初始x,y坐标,和速度,,用if-elif-else结构来确定外星人移动多远,并将移动的值存在x_increment,再将改变的值加入到新的x_position中,
#6.2.5 删除键—值对
alien_0={'color':'green','points':'5'}
print(alien_0)
del alien_0['points']
print(alien_0)
##del语句将永远删除键—值对
#6.2.6 由类似对象组成的字典
favorite_languages={
'jen':'python',
'sarah':'c',
'daming':'java',
'sam':'c++',
}
## 将一个较大的字典放在多行中,每个键—值对都用逗号隔开,且缩进进行对齐,在最后一个后面最好也加一个逗号
print("sam's favorite language is "+ favorite_languages['sam'].title()+' .')
#6.3 遍历字典
#6.3.1 遍历所有的键—值对
user_0={
'username':'luluhuang',
'first':'lulu',
'last':'huang',
}
for key,value in user_0.items():
print("\nkey: "+key)
print("value: "+value)
## for循环依次将每个键—值对存储在指定的两个变量里,使用两个变量来依次进行打印,
## 值的返回顺序和存出顺序不同
## item()方法 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组
#6.3.2 遍历字典中的所有键
favorite_languages={
'jen':'python',
'sarah':'c',
'daming':'java',
'sam':'c++',
}
for name in favorite_languages.keys():
print(name.title())
## for 循环用来提取字典中的所有的键,并依次将他们存储在变量name中,但是用keys()方法和 for name in favorite_languages的输出一样
## 但是使用keys()方法会使代码更容易理解
friends=['phil','sarah']
for name in favorite_languages.keys():
print(name.title())
if name in friends:
print(" hi "+name.title()+" , i see your favorite language is "+favorite_languages[name].title()+"!")
## 方法keys()返回一个列表其中包含字典中的所有的键,
if 'erin' not in favorite_languages.keys():
print("erin, please take your poil!")
# 6.3.3 按顺序遍历字典中的所有键
favorite_languages={
'jen':'python',
'sarah':'c',
'daming':'java',
'sam':'c++',
}
for name in sorted(favorite_languages.keys()):
print(name.title()+", thank you! ")
## 在for循环中对返回的值进行排序,使用sorted()方法按特定顺序排列键,在遍历前进行排序,
# 6.3.4 遍历字典中的所有值
print("the following languages have been mentioned:\n")
for language in favorite_languages.values():
print(language.title())
## 方法value(),返回一份值列表,
for language in set(favorite_languages.values()):
print(language.title())
## 集合set类似于列表,但每个元素都是独一无二的,
#6.4 嵌套
# 6.4.1 字典列表
alien_0={'color':'green','points':'5'}
alien_1={'color':'yellow','points':'10'}
alien_2={'color':'red','points':'15'}
aliens=[alien_1,alien_1,alien_2]
for alien in aliens:
print(alien)
print("\n")
## 首先创建了三个字典,每个字典都代表一个外星人,然后将外星人都放在一个列表内,,最后遍历列表进行输出
aliens=[]
## 首先创建一个存储外星人的空列表
for alien_number in range(30): ##创建30个外星人
new_alien={'color':'green','points':'5','speed':'slow'}
aliens.append(new_alien)
## 显示五个外星人
for alien in aliens[:5]:
print(alien)
print('...')
##显示创建了多少个外星人
print("totle number of aliens : "+str(len(aliens)))
## range()返回一系列的数字,来确定要循环多少次,每循环一次,就创建一个外星人,并将其附加到列表aliens的末尾,
##再使用切片进行打印5个字典外星人
aliens=[]
## 首先创建一个存储外星人的空列表
for alien_number in range(30): ##创建30个外星人
new_alien={'color':'green','points':'5','speed':'slow'}
aliens.append(new_alien)
for alien in aliens[:3]:
if alien ['color']=='green':
alien['color']='yellow'
alien['points']='5'
alien['speed']='medium'
## 显示五个外星人
for alien in aliens[:5]:
print(alien)
print('...')
##显示创建了多少个外星人
print("totle number of aliens : "+str(len(aliens)))
aliens=[]
## 首先创建一个存储外星人的空列表
for alien_number in range(30): ##创建30个外星人
new_alien={'color':'green','points':'5','speed':'slow'}
aliens.append(new_alien)
for alien in aliens[0:3]:
if alien['color']=='green':
alien['color']='yellow'
alien['points']='5'
alien['speed']='medium'
elif alien['color']=='yellow':
alien['color'] = 'red'
alien['points'] = '15'
alien['speed'] = 'max'
## 显示五个外星人
for alien in aliens[0:5]:
print(alien)
print('...')
##显示创建了多少个外星人
print("totle number of aliens : "+str(len(aliens)))
#在字典中存储列表
pizza={
'crust':'thick',
'topping':['mushrooms','extra cheese'],
}
print("you ordered a "+pizza['crust']+"-crust pizza "+"with the following tippings: ")
for topping in pizza['topping']:
print("\t"+topping)
## 先创建一个字典,存储有关顾客所点的披萨的信息,用for循环访问配料列表,使用键'topping'从字典中提取配料列表
## 每当在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表
favorite_languages={
'jen':['python','ruby'],
'sarah':['c'],
'daming':['java','go'],
'sam':['c++','python'],
}
for name,languages in favorite_languages.items():
print("\n"+name.title()+"'s favorite languages are: ")
for language in languages:
print('\t'+language.title())
# 6,4.3 字典中存储字典
users={
'daming':{
'first':'daming',
'last':'li',
'location':'princeton',
},
"lingling":{
'first': 'lingling',
'last': 'huang',
'location': 'paris',
},
}
for username,user_info in users.items():
print("\nusername: "+username)
full_name=user_info['first']+" "+user_info['last']
location=user_info["location"]
print("\tfull name: "+full_name.title())
print("\tlocation: "+location.title())
GOOD LUCK!!!