Python的学习-Python中字典的应用

字典是另一种可变容器模型,且可存储任意类型对象。
字典是一个无序的数据集合
通常输出顺序和定义顺序不一样
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 。
键必须是唯一的,但值则不必。

1.字典的创建

将两个列表转换成一个字典:
users = [‘user1’,‘user2’]
passwds = [‘123’,‘456’]

print(list(zip(users,passwds)))
print(dict(zip(users,passwds)))
在这里插入图片描述
#字典中value值可以是任意数据类型
s = {
‘westos’:[100,99,88],
‘redhat’:[50,60,70]
}
print(s,type(s))
在这里插入图片描述
#工厂函数
d = dict()
print(d)
print(type(d))

d = dict(a=1,b=2)
print(d)
print(type(d))
在这里插入图片描述
#字典的嵌套
students = {
‘03113009’:{
‘name’:‘wsp’,
‘age’:18,
‘score’:90
},
‘12345678’:{
‘name’:‘laoli’,
‘age’:36,
‘score’:80
}
}
print(students[‘12345678’][‘name’])
在这里插入图片描述
#所有的key的value值一样
print({}.fromkeys({‘1’,‘2’},‘000000’))
在这里插入图片描述

2.字典的特性

d = dict(a=1,b=2)

#不支持索引 切片
#print(d[0])
在这里插入图片描述
#字典的重复 连接无意义,因为字典的key值唯一
#成员操作符
print(‘a’ in d)
print(‘a’ not in d)
在这里插入图片描述
#for循环
for k in d:
print(k,d[k])
在这里插入图片描述

3.字典的增加

services = {
‘http’:80,
‘ftp’:21,
‘mysql’:3306
}

#增加一个元素
#如果key值存在,则更新对应的value值
#如果key值不存在,添加key-value值对
services[‘ssh’] = 22
print(services)
services[‘http’] = 443
print(services)
在这里插入图片描述
#添加多个key-value值
services_backup = {
‘https’:443,
‘tomcat’:8080,
‘ssh’:22
}
services.update(services_backup)
print(services)

services.update(flask=9000,http=8000)
print(services)
在这里插入图片描述
#setdefault添加key值
#如果key值存在,不做修改
#如果key值不存在,添加对应的key-value
services.setdefault(‘http’,9090)
print(services)

services.setdefault(‘oracle’,44575)
print(services)
在这里插入图片描述

4.字典的删除

services = {
‘http’:80,
‘ftp’:21,
‘mysql’:3306
}

del services[‘http’]
print(services)
在这里插入图片描述
#pop删除指定的key的key-value
#如果key存在,删除,并返回删除key对应的value
#如果key不存在,报错
item = services.pop(‘mysql’)
print(item)
print(services)
在这里插入图片描述
#popitem删除最后一个key-value值
item = services.popitem()
print(item)
print(services)
在这里插入图片描述
#清空字典内容
services.clear()
print(services)
在这里插入图片描述

5.字典的查看

services = {
‘http’:80,
‘ftp’:21,
‘mysql’:3306
}

#查看字典的key值
print(services.keys())
在这里插入图片描述
#查看字典的value值
print(services.values())
在这里插入图片描述
#查看字典的key-value值对
print(services.items())
在这里插入图片描述
#查看key的value值
print(services[‘http’])
在这里插入图片描述
#查看key的value值
#key不存在,默认返回None
#key不存在,有default,则返回default
print(services.get(‘http’))
在这里插入图片描述
#get方法获取指定key值对应的value值
#如果key值存在,返回对应的value值
#如果key值不存在,默认返回None,如果需要指定返回值,传值即可
print(services.get(‘https’,‘key not exist’))
在这里插入图片描述

6.字典的练习

数字统计:
1)随机生成1000个整数
2)范围[20,100]
3)升序输出所有不同的数字及每个数字重复的次数
import random

list = []
for i in range(1000):
list.append(random.randint(20, 100))
set = sorted(set(list)) #将去重的数字排序
length = len(set) #统计去重的数字个数
dict = {}
for i in range(length):
dict[set[i]] = list.count(set[i]) #统计每个数字出现的次数即为重复的次数
print(dict) #显示字典
在这里插入图片描述

  1. 生成100个卡号;
    卡号以6102009开头, 后面3位依次是(001, 002, 003, 100)
  2. 生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";
  3. 输出卡号和密码信息, 格式如下:
    卡号 密码
    6102009001 000000
    list=[]
    for i in range(1,101):
    list.append(‘6102009%.3d’ %i)
    dict = {}.fromkeys(list,‘redhat’)
    print(‘卡号\t\t\t 密码\t’)
    for i,v in dict.items():
    print(i,’\t’,v)
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值