-
字典的定义:
字典是一个无序的数据集合,使用print输出字典的时候
通常输出的顺序和定义的顺序是不一致的users = ['user1','user2'] passwd = ['123','456'] print(zip(users,passwd)) print(list(zip(users,passwd))) print(dict(zip(users,passwd)))
s = {}
print(type(s))
key - value 键值对:value可以是任意数据类型
s = {
'linux':[100,99,88],
'westos':[190,564,645]
}
print(s,type(s))
3)工厂函数:dict()
4)字典的嵌套
students = {
'03113009':{
'name':'sue',
'age':18,
'score':80
},
'03113010':{
'name': 'harry',
'age': 30,
'score': 59
}
}
print(students['03113010']['name'])
print({}.fromkeys({'1','2'},'000000'))
- 字典的特性:
1)字典不支持索引
d = {
'1':'a',
'2':'b'
}
print(d[0])
2)字典不支持切片
print(d[:])
3)成员操作符
print('1' in d)
4)for循环,默认遍历字典的key值
for i in d:
print(i)
5)遍历字典
for i in d:
print(i,d[i])
- 字典的常用方法:
1)增加
1>增加一个
增加一个元素
如果key值存在,则更新对应的value值
如果key值不存在,则添加对应key-value
services = {
'http':80,
'ftp':21,
'ssh':22
}
services['mysql'] = 3306
print(services)
2>添加多个key-value值
services_backup = {
'https':443,
'tomcat':8080,
'http':8080
}
services.update(services_backup)
print(services)
services.update(flask=9000,http=8000)
print(services)
3>
setdefault添加key值
如果key值存在,不做修改
如果key值不存在,添加对应的key-value
services.setdefault('http',9090)
print(services)
services.setdefault('oracle',44575)
print(services)
删除
services = {
'http':80,
'ftp':21,
'ssh':22
}
1>del删除:
删除指定元素:
del services['http']
print(services)
pop删除指定key的key-value
如果key存在,删除,并返回删除key对应的value
如果不存在,报错
2>pop删除
pop删除指定key的key-value
如果key存在,删除,并返回删除key对应的value
如果不存在,报错
item = services.pop('http')
print(item)
print(services)
3>popitem删除
popitem删除最后一个key-value值
tem = services.popitem()
print('删除的是:',item)
print(services)
查看
services = {
'http':80,
'ftp':21,
'ssh':22
}
1>查看字典的key值
print(services.keys())
2>查看字典的value值
print(services.values())
3>查看字典的key-value值
print(services.items())
4>查看key的value值
key不存在,默认返回none
key不存在,有default值,则返回default值
print(services.get('http'))
5> 遍历
for k,v in services.items():
print(k,'--->',v)
for k in services:
print(k,'--->',services[k])
6>get方法获取指定key对应的value
print(services.get('https','key not exist'))
- 练习:
题目要求:
1) 随机生成1000个整数
2) 数字范围[20,100]
3) 升序输出所有不同的数字及其每个数字的重复次数
import random
b = []
num_dict = {}
##随机生成1000个[20,100]的随机数
for i in range(1000):
a = random.randint(20, 100)
b.append(a)
b2 = sorted(b)
print(b)
for item in b2:
if item not in num_dict:
num_dict[item] = 1
else:
num_dict[item] += 1
print(num_dict)
for k, v in num_dict.items():
print(k, '出现了:', v, '次')