1.字典的定义
s = {}
print(s,type(s))
#字典:key-value 键值对
#value值可以是任意数据类型
s = {
‘linux’:[100,99,88],
‘python’:[190,34,56]
}
print(s,type(s))
#工厂函数
d = dict()
print(d,type(d))
d = dict(a=1,b=2)
print(d,type(d))
#字典的嵌套
student = {
‘123456’:{
‘name’:‘tom’,
‘age’:‘18’,
‘score’:99
},
‘657567’:{
‘name’:‘lily’,
‘age’:‘17’,
‘score’:100
}
}
print(student[‘123456’][‘name’])
2.字典的特性
d = {
‘1’:‘a’,
‘2’:‘b’
}
print(d[‘2’])
#字典不支持切片
print(d[:])
#成员操作符(针对key)
print(‘1’ in d)
print(‘1’ not in d)
#for循环(默认遍历的是key)
for key in d:
print(key)
#遍历字典
for key in d:
print(key,d[key])
3.字典的增加
service = {
‘http’:80,
‘ftp’:21,
‘ssh’:22
}
#增加一个元素
#如果key值存在,则更新对应的value值
#如故key值不存在,则添加对应的key-value值
service[‘mysql’] = 3306
print(service)
service[‘http’] = 443
print(service)
#添加多个key-value值
service_backup = {
‘1’:443,
‘tomcat’:8080,
‘http’:8080
}
service.update(service_backup)
print(service)
service.update(flask=9000,http=8000)
print(service)
#setdefault添加key值的时候
#如果key值存在,不做修改
#如果key值不存在,则添加对应的key-value
service.setdefault(‘http’,9090)
print(service)
service.setdefault(‘oracle’,44575)
print(service)
4.字典的删除
service = {
‘http’:80,
‘ftp’:21,
‘ssh’:22
}
#del service[‘http’]
#print(service)
“”"
pop删除指定key对应的value
如果key存在,删除,并且返回删除key对应的value(可以用变量去接收)
如果key不存在,直接报错
“”"
item = service.pop(‘https’)
print(item)
print(service)
#popitem删除最后一个key-value值
item = service.popitem()
print(‘删除的key-value对是:’,item)
print(service)
#清空字典内容
service.clear()
print(service)
5.字典的查看
service = {
‘http’:80,
‘ftp’:21,
‘ssh’:22
}
#查看字典的key值
print(service.keys())
#查看字典的value值
print(service.values())
#查看字典的key-value值
print(service.items())
“”"
查看key的value值
key不存在 默认返回None
key不存在,有defaule就返回defale的值
“”"
#print(service[‘https’])
print(service.get(‘https’,443))
6.字典的小练习
先不要看答案
1.重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;
# 1. 用户输入一句英文句子;
# 2. 打印出每个单词及其重复的次数;
s = input('s:')
# 1.把每个单词分割处理
s_li = s.split()
print(s_li)
# 通过字典存储单词和该单词出现的次数
word_dict ={}
for item in s_li:
if item not in word_dict:
word_dict[item] = 1
else:
word_dict[item] += 1
print(word_dict)
- 随机生成100个卡号;
#卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100),
#2. 生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";
#3. 输出卡号和密码信息, 格式如下:
卡号 密码
6102009001 000000
fromkeys第一个参数可以是 list/tulpe/str/set
将第一个参数的元素作为字典的key值
并且所有的key的value值都是一致的
"""
# print({}.fromkeys({'1','2'},'000000'))
# 存储所有卡号列表
card_ids = []
# 生成100个卡号
for i in range(100):
# %.3d代表:这个整型数占3位 eg:1--->001
s = '6102009%.3d' %(i+1)
# 将每次生成的卡号都加入到列表中
card_ids.append(s)
card_ids_dict = {}.fromkeys(card_ids,'redhat')
#print(card_ids_dict)
print('卡号\t\t\t\t\t 密码')
for key in card_ids_dict:
print('%s\t\t\t%s' %(key,card_ids_dict[key]))