9.Python字典

 

字典

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
In [1]:
#空字典
dict1 = {}  
dict2 = dict()

#非空字典定义
dict3 = {'ID': '123456789', 'name' : 'lucky', 'age' : '18'}

#列表可以转列表,但是前提是列表中的元素都要成对出现
#dict4 = dict(('name', 'lucky'))  #ValueError: dictionary update sequence element #0 has length 4; 2 is required

dict4 = dict([('name', 'lucky')])

dict5 = dict([('name', 'lucky'),('age', '18')])
In [2]:
dict2 = {'name':'tom', 'age':'18', 'gender':'man'}
 

增加、修改、查找

格式:DicName[key] = value 1、如果字典中存在同名的key,则发生值的覆盖。 2、如果没有同名的key,则实现添加功能添加到字典中。

In [3]:
#增
dict6 = {}
dict6['brand'] = 'huawei'

dict6['type'] = 'p30 pro'
dict6['price'] = 9000
dict6['color'] = '黑色'
print(dict6)
 
{'brand': 'huawei', 'type': 'p30 pro', 'price': 9000, 'color': '黑色'}
In [4]:
#改
dict6['brand'] = 'mi'
print(dict6)
 
{'brand': 'mi', 'type': 'p30 pro', 'price': 9000, 'color': '黑色'}
In [5]:
# 案例:用户注册功能
#模拟数据库
database = []
print('--------------------欢迎来到智联招聘-------------------------')
Isanswer = True
while Isanswer:
    #定义一个字典
    user = {}
    
    username = input('输入用户名:')
    password = input('请输入密码:')
    repassword = input('请输入确定密码:')

    #将信息保存到字典中
    user['username'] = username
    if password == repassword:
        user['password'] = password
    else:
        print('两次密码不一致!')
        continue
    email = input('请输入邮箱:')
    phone = input('请输入手机号码:')
    user['email'] = email
    user['phone'] = phone

    #保存数据到数据库中
    database.append(user)
    Isanswer = input('是否继续注册?(y/n)')
    if Isanswer != 'y':
        break
print(database)
 
--------------------欢迎来到智联招聘-------------------------
输入用户名:liming
请输入密码:111111
请输入确定密码:111111
请输入邮箱:123@qq.com
请输入手机号码:123456789
是否继续注册?(y/n)y
输入用户名:wangfa
请输入密码:123456
请输入确定密码:123456
请输入邮箱:111111@qq.com
请输入手机号码:212121121212
是否继续注册?(y/n)n
[{'username': 'liming', 'password': '111111', 'email': '123@qq.com', 'phone': '123456789'}, {'username': 'wangfa', 'password': '123456', 'email': '111111@qq.com', 'phone': '212121121212'}]
In [6]:
#查:通过key来取值
print(dict6['color'])
 
黑色
In [7]:
#遍历:拿到字典的key
for i in dict6:
    print(i)
 
brand
type
price
color
 

字典内置函数

In [8]:
dict6 = {'数学': 100,'语文': 96, '英语': 99}
In [9]:
#items():转换为元组
print(dict6.items())

for key, value in dict6.items():
    print(key, value)
 
dict_items([('数学', 100), ('语文', 96), ('英语', 99)])
数学 100
语文 96
英语 99
In [10]:
#values():取出字典中所有的值
result = dict6.values()
print(result)

#求总平均分
scores = dict6.values()
totle = sum(scores)
avg = totle / len(scores)
print('平均分:', avg)
 
dict_values([100, 96, 99])
平均分: 98.33333333333333
In [11]:
#keys():获取字典所有key键
project = dict6.keys()
print(project)
 
dict_keys(['数学', '语文', '英语'])
 


In [12]:
dict6 = {'张三':'100', '李四':'96', '王五':'99', '赵六':'93'}
del dict6['李四']
print(dict6)

result = dict6.pop('王五','error') #根据key删除字典中的键值对,返回值是:只要删除成功,则返回对应的key值,否则返回设定的默认值
print(dict6)
print(result)

result = dict6.pop('没有','无')
print(dict6)
print(result)
 
{'张三': '100', '王五': '99', '赵六': '93'}
{'张三': '100', '赵六': '93'}
99
{'张三': '100', '赵六': '93'}
无

posted on 2020-01-06 15:37  King-Penguin  阅读(273)  评论(0编辑  收藏  举报

导航