Python字典基础
- 字典不关心顺序,而是关心键与值之间的对应关系
- 字典的定义
alien = {'color':'green','points':'2'}
alien['x']=90 #列表偏移量的位置更换成键名
alien['y']=50
print(alien)
>> {'color': 'green', 'points': '2', 'x': 90, 'y': 50}
- 字典中元素修改
alien = {'color':'green','points':'2'}
alien['color']= 'black'
print(alien)
>> {'color': 'black', 'points': '2'}
- 字典中元素的删除
alien_0 = {'color':'yello','speed':'medium','x' : 0,'y' : 25}
del alien_0['color']
print(alien_0)
>> {'speed': 'medium', 'x': 0, 'y': 25}
- 字典的遍历
– 得到键和值
user_0={'username' : 'tim',
'first' : 'Tim',
'last' : 'Duncun'
}
for k,v in user_0.items(): #这里items()创建一个由键值对组成的列表,通过遍历分别赋值到k,v
print(k)
print(v)
print('\n')
>>username
>>tim
>>first
>>Tim
>>last
>>Duncun
– 得到所有的键
fav = {
'jen' : 'python',
'sarah' : 'C',
'edward' : 'ruby',
'phil' : 'R'
}
for name in fav:
print(name.title())
for name in fav.keys(): #两种效果一样,但keys()更容易理解
print(name.title())
>>Jen
>>Sarah
>>Edward
>>Phil
>>Jen
>>Sarah
>>Edward
>>Phil
– 如果想要得到按照字母排序的键,那么只要修改一下
for name in sorted(fav.keys()):
>>Edward
>>Jen
>>Phil
>>Sarah
-获取字典的值
– 根据values()函数
fav = {
'jen' : 'python',
'sarah' : 'C',
'edward' : 'ruby',
'phil' : 'R',
'zara' : 'C'
}
for value in fav.values():
print(value.title())#首字母大写
>>Python
>>C
>>Ruby
>>R
>>C
—但是用values()会出现值重复的现象,为了简化,引入set()
for value in set(fav.values()):
>>R
>>Python
>>C
>>Ruby
– 根据遍历得到的键来获取值
fav = {
'jen' : 'python',
'sarah' : 'C',
'edward' : 'ruby',
'phil' : 'R'
}
for name in fav.keys():
print(name.title())
print(fav[name])
print('\n')
>>Jen
>>python
>>Sarah
>>C
>>Edward
>>ruby
>>Phil
>>R
- 字典嵌套列表
–值的位置放置列表
fav={
'jen' : ['python','ruby'],
'sarah':['c'],
'edward':['ruby','go'],
'phil':['python','haskell']
}
for name,languages in fav.items():
print('\n%s likes '%name)
for language in languages:
print(lan )
>>jen likes
>>python
>>ruby
>>sarah likes
>>c
>>edward likes
>>ruby
>>go
>>phil likes
>>python
>>haskell
- 字典嵌套字典
– 值的位置放置字典
users ={
'aein':{
'first':'albert',
'last':'eintstein',
'location':'princeton'
},
'mcurie':{
'first' : 'marie',
'last' : 'curie',
'location':'paris'
}
}
for Sname,infos in users.items():
print('\nUsername : %s ' %Sname)
print(' Fullname: %s %s'%(infos['first'].title(),infos['last'].title()))
print(' Location: %s'%infos['location'])
print('\n')
>>Username : aein
>> Fullname: Albert Eintstein
>> Location: princeton
>>Username : mcurie
>> Fullname: Marie Curie
>> Location: paris