1. 字典的定义

字典是一个无序的数据集合
通常输出顺序和定义顺序不一样
users = ['user1','user2']
passwds = ['123','456']
print(zip(users,passwds))
print(list(zip(users,passwds)))
print(dict(zip(users,passwds)))

python 声明字典存储类型 python里面字典怎么定义_tomcat

d = {}   #用花括号定义一个空字典
# print(type(d))  #打印这个字典的类型,可以看到,d的类型是dict

python 声明字典存储类型 python里面字典怎么定义_mysql_02

字典中value值可以是任意数据类型
s = {
#     'westos':[100,99,88],  #字典中的value值是列表
#     'redhat':[50,60,70]
# }
# print(s,type(s))  #可以看到,s的数据类型是dict

python 声明字典存储类型 python里面字典怎么定义_mysql_03

工厂函数
# d = dict()   #使用工厂函数来定义一个字典
# print(d)  
# print(type(d))

# d = dict(a=1,b=2)
# print(d)
# print(type(d))

python 声明字典存储类型 python里面字典怎么定义_mysql_04

字典的嵌套
students = {
    '03113009':{
        'name':'wsp',
        'age':18,
        'score':90
    },
    '12345678':{
        'name':'laoli',
        'age':36,
        'score':80
    }
}

# print(students['12345678']['name'])

python 声明字典存储类型 python里面字典怎么定义_数据类型_05

#所有的key的value值一样
print({}.fromkeys({'1','2'},'000000'))

python 声明字典存储类型 python里面字典怎么定义_tomcat_06

2. 字典的特性

成员操作符
# print('a' in d)
# print('a' not in d)

python 声明字典存储类型 python里面字典怎么定义_数据类型_07

for循环
for k in d:
    print(k,d[k])

python 声明字典存储类型 python里面字典怎么定义_python 声明字典存储类型_08

3. 字典的增加

3.1 字典键值对的添加

如果key值存在,则更新对应的value值
如果key值不存在,添加key-value值对
services = {
    'http':80,
    'ftp':21,
    'mysql':3306
}

services['ssh'] = 22
 print(services)
 services['http'] = 443
 print(services)

python 声明字典存储类型 python里面字典怎么定义_python 声明字典存储类型_09


3.2 添加多个key-value值

services_backup = {
    'https':443,
    'tomcat':8080,
    'ssh':22
}
services.update(services_backup)
# print(services)
#
# services.update(flask=9000,http=8000)
# print(services)

python 声明字典存储类型 python里面字典怎么定义_数据类型_10

services.update(https=443,tomcat=8080)
print(services)

python 声明字典存储类型 python里面字典怎么定义_python 声明字典存储类型_11


3.3 setdefault添加key值

如果key值存在,不做修改
如果key值不存在,添加对应的key-value
services.setdefault('http',9090)
print(services)

services.setdefault('oracle',44575)
print(services)

python 声明字典存储类型 python里面字典怎么定义_mysql_12

4. 字典的删除

4.1 del

services = {
    'http':80,
    'ftp':21,
    'mysql':3306
}
del services['http']
print(services)

python 声明字典存储类型 python里面字典怎么定义_tomcat_13


4.2 pop:删除指定的key的key-value

如果key存在,删除,并返回删除key对应的value
#如果key不存在,报错
item = services.pop('mysql')
print(item)
print(services)

python 声明字典存储类型 python里面字典怎么定义_数据类型_14


4.3 popitem:删除最后一个key-value值

item = services.popitem()
 print(item)
 print(services)

python 声明字典存储类型 python里面字典怎么定义_mysql_15


4.3 clear :清空字典内容

services.clear()
print(services);

python 声明字典存储类型 python里面字典怎么定义_mysql_16

5. 字典的查看

查看字典的key值

print(services.keys())

python 声明字典存储类型 python里面字典怎么定义_mysql_17

查看字典的value值

print(services.values())

python 声明字典存储类型 python里面字典怎么定义_python 声明字典存储类型_18

查看字典的key-value值对

print(services.items())

python 声明字典存储类型 python里面字典怎么定义_python 声明字典存储类型_19


查看key的value值

print(services['http'])
如果没有这个key,会报错

python 声明字典存储类型 python里面字典怎么定义_python 声明字典存储类型_20

python 声明字典存储类型 python里面字典怎么定义_python 声明字典存储类型_21

查看key的value值

print(services.get('http'))  #key存在,返回key的value
print(services.get('https'))  #key不存在,返回None

python 声明字典存储类型 python里面字典怎么定义_tomcat_22

get方法获取指定key值对应的value值
如果key值存在,返回对应的value值
如果key值不存在,默认返回None,如果需要指定返回值,传值即可
print(services.get('https','key not exist'))

python 声明字典存储类型 python里面字典怎么定义_mysql_23


6. 字典的示例

1.数字统计:
1)随机生成1000个整数
2)范围[20,100]
3)升序输出所有不同的数字及每个数字重复的次数
import random
l=[]
s={}
for i in range(1000):
    a=random.randint(20,100)
    l.append(a)
l.sort()
#print(l)
for i in range(len(l)):
    s[l[i]] = l.count(l[i])
print(s)

python 声明字典存储类型 python里面字典怎么定义_tomcat_24

生成100个卡号;
卡号以6102009开头, 后面3位依次是(001, 002, 003, 100)
生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";
输出卡号和密码信息, 格式如下:
卡号 密码
6102009001 000000
car_num=[]
for i in range(100):
    car_num.append('6102009%.3d' %(i+1))
#print(car_num)
card_info={}.fromkeys(car_num,'redhat')
print('卡号\t\t\t密码')
for k,v in card_info.items():
    print(k,'\t',v)

python 声明字典存储类型 python里面字典怎么定义_数据类型_25