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)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值