Python_字典
字典
一个简单的字典
zulpikar = {
'name':'zulpikar',
'age':'22',
'con':'13109923220'
}
print("name: "+zulpikar['name'])
print("age: "+zulpikar['age'])
print("con: "+zulpikar['con'])
使用字典
添加键-值对
在python中,字典是一系列键-值对,每一个键都是跟一个值相关联,我们可以使用键来访问与之相关的值。
zulpikar = {
'name':'zulpikar',
'age':'22',
'con':'13109923220'
}
zulpikar['email'] = 'zulpikartursun@aliyun.com'
zulpikar['qq'] = '1351742740'
print(zulpikar)
创建空字典
zulpikar = {}
zulpikar['email'] = 'zulpikartursun@aliyun.com'
zulpikar['qq'] = '1351742abc'
print(zulpikar)
修改字典中的值
zulpikar = {
'name':'zulpikar',
'age':'22',
'con':'1310992abcd'
}
print("My name is "+zulpikar['name']+",and i am "+zulpikar['age']+"year old.")
print("my telphone number is:"+zulpikar['con']+".")
rint("修改后。")
print("\n")
zulpikar['age'] = '23'
zulpikar['con'] = '1580995edfs'
print("My name is "+zulpikar['name']+",and i am "+zulpikar['age']+"year old.")
print("my telphone number is:"+zulpikar['con']+".")
删除键-值对
对于字典中不再需要的信息,可以使用del语句将相应的键-值对彻底删除。
zulpikar = {
'name':'zulpikar',
'age':'22',
'con':'13109923220'
}
print("原来的:")
print(zulpikar)
print("删除一个键值对以后:")
del zulpikar['con']
print(zulpikar)
注意:删除的键值对永远消失了
由类似对象组成的字典
favorite_language = {
'zulpikar':'python',
'friday':'objective-c',
'sherlock':'c',
'monday':'c#'
}
print("Zulpikar`s favorite language is "+favorite_language['zulpikar'].title())
遍历字典
遍历所有的键-值对
user_0 = {
'name':'friday',
'id':'2016102234',
'email':'friday@aliyun.com',
'password':'123456'
}
##我们可以使用一个for循环来遍历上面的字典。
for key,value in user_0.items():
print("\nKey:"+key+", Value:"+value)
要编写用于遍历字典的for循环,可以声明两个变量,用于存储键值对中的键和值,对这两个变量可以使用任何名称,比如下面这段:
for k,v in user_0.items():
print("\nKey:"+k+", Value:"+v)
print("\n")
遍历字典中的所有键:
user_0 = {
'name':'friday',
'id':'2016102234',
'email':'friday@aliyun.com',
'password':'123456'
}
for k in user_0.keys():
print("\nKey:"+k)
print("\n")
案例
users = {
'zulpikar':'bmw',
'friday':'audi',
'sherlock':'保时捷'
}
admin = ['zulpikar','friday']
for name,car in users.items():
if name in admin:
print("管理员"+name+"你好!"+car+"是你的车。")
#还有一种写法:
for name,car in users.items():
if name not in admin:
print(name+"您不是管理员,请滚。")
按顺序遍历字典中的所有键
要以特定的顺序返回元素,一种办法是在for循环中对返回的键进行排序,为此,可以使用函数sorted()来获取:
users = {
'zulpikar':'bmw',
'friday':'audi',
'sherlock':'保时捷'
}
for name in sorted(users.keys()):
print(name)
print("\n")
遍历字典中的所有值
如果你感兴趣的主要是字典包含的值,可以使用方法values(),它返回一个值列表,而不包含任何键。
users = {
'zulpikar':'bmw',
'friday':'audi',
'sherlock':'保时捷'
}
for v in sorted(users.values()):
print(v)
print("\n")
注意:如果有很多重复项,而我们希望没有重复项,那么可以使用set()。
嵌套
字典列表
一个简单的字典列表
user_0 = {
'user_name':'zulpikar',
'password':'123456'
}
user_1 = {
'user_name':'friday',
'password':'123456'
}
users = [user_0,user_1]
print(users)
for user in users:
print(user)
users = []
for user_num in range(50):
new_user = {
'name':'zulpikar',
'id':'201102234'
}
users.append(new_user)
for user in users[:5]:
if user['name']=='zulpikar':
user['name'] = 'nuramina'
print(user)
print("...")
print("数组的长度:"+str(len(users)))
在字典中存储列表
有时候,需要将列表存储在字典中,而不是将字典存储在列表中
比如一个人的多个女朋友
user = {
'name':'boy_A',
'girl_friends':['gril_A','gril_B','gril_C'],
}
print("His name is "+user['name']+",and his gril friend list is:")
for gril in user['girl_friends']:
print("\t"+gril)
在字典中存储字典
可以在字典中嵌套字典,但是这样做时,可能会让代码复杂起来。
比如:
users = {
'zulpikar':{
'id':'1234524321',
'password':'w12e3d233d'
},
'nuramina':{
'id':'32s213233',
'password':'s21s323fk'
}
}
for user_name,user_info in users.items():
print("用户名:"+user_name)
id = user_info['id']
password = user_info['password']
print("账号:"+id)
print("密码:"+password)