python中的字典

1.字典的定义

字典是一个无序的数据集合
通常输出的顺序和定义的顺序不一致

1.列表类型转换

users = ['user1','user2']
passwd = ['123','456']
print(zip(users,passwd))	##无法正确输出
print(list(zip(users,passwd)))	##将类型转换成列表类型输出
print(dict(zip(users,passwd)))	##将类型转换成字典类型输出

在这里插入图片描述2.空字典

s = {}
print(type(s))

在这里插入图片描述
3.创建字典并输出其类型
##字典:key-value键值对
#value可以是任意数据类型

s = {
    'westos':[190,521,231],
    'mysql':[100,99,88]
}

print(s,type(s))

在这里插入图片描述
4.工厂函数

#工厂函数
d = dict()	##dict相当于一个函数
print(type(d))	##查看d是一个类型
#举例
d1 = dict(a=1,b=2)
print(d1,type(d1))

在这里插入图片描述
5.字典的嵌套

students = {
    '03113009':{
        'name':'szy',
        'age':21,
        'score':99
    },
    '03113010':{
        'name':'westos',
        'age':18,
        'score':61
    }
}
print(students['03113009']['name'])

在这里插入图片描述6.所有的key对应的value值是一样的

print({}.fromkeys({'1','2'},'000000'))

在这里插入图片描述

2.字典的特性

字典不支持索引和切片,且字典的重复和连接毫无意义

d = {
    '1':'a',
    '2':'b'
}
print(d['1'])
print(d[:])

在这里插入图片描述成员操作符
在这里插入图片描述
for循环,默认变量字典的key值

d = {
    '1':'a',
    '2':'b'
}
for key in d:
    print(key)

在这里插入图片描述

for循环,遍历字典(输出key值和value值)

d = {
    '1':'a',
    '2':'b'
}
for key in d:
    print(key,d[key])

d = {
    '1':'a',
    '2':'b'
}
for k,v in d.items():
    print(k,v)

在这里插入图片描述
在这里插入图片描述

3.字典的增加

1.添加一个元素

services = {
    'http':80,
    'mysql':3306,
    'smtp':25
}

services['ftp'] = 21
print(services)

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

在这里插入图片描述
2.添加多个key-value值

services = {
    'http':80,
    'mysql':3306,
    'smtp':25
}
services_backup = {
    'https':443,
    'tomcat':8080,
    'http':8080
}

services.update(services_backup)
print(services)

在这里插入图片描述
3.setdefault添加key值
#如果key值存在,不做修改
#如果key值不存在,添加对应的key-value

services = {
    'http':80,
    'mysql':3306,
    'smtp':25
}
services.setdefault('http',9090)
print(services)

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

在这里插入图片描述

4.字典的删除

1.del删除指定的key的key-value

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

在这里插入图片描述
2.pop删除指定的key的key-value
#如果key存在,删除,并返回删除key对应value
#如果不存在,报错

services = {                      
    'http':80,                    
    'mysql':3306,                 
    'smtp':25                     
}                                 
item = services.pop('http')       
print(item)                       
print(services)                   
item1 = services.pop('https')     
print(item1)                      
print(services)                   

在这里插入图片描述
3.popitem删除最后一个key-value值

services = {                 
    'http':80,               
    'mysql':3306,            
    'smtp':25                
}                            
item = services.popitem()    
print(services)              

在这里插入图片描述4.清空字典内容

services = {       
    'http':80,     
    'mysql':3306,  
    'smtp':25      
}                  
services.clear()   
print(services)    

在这里插入图片描述

5.字典的查看

1.查看字典的key值

services = {
    'http':80,
    'mysql':3306,
    'smtp':25
}
print(services.keys())

在这里插入图片描述2.查看字典的value值

services = {
    'http':80,
    'mysql':3306,
    'smtp':25
}

print(services.values())

在这里插入图片描述
3.查看字典的key-value值

services = {
    'http':80,
    'mysql':3306,
    'smtp':25
}

print(services.items())

在这里插入图片描述4.查看key的value值
#key不存在,默认返回None
#key不存在,有default,则返回default值

services = {
    'http':80,
    'mysql':3306,
    'smtp':25
}

print(services.get('https'))
print(services.get('http'))

在这里插入图片描述
get方法
如果key值存在,返回
如果不存在,默认返回None,如果需要指定返回值,传值即可

services = {
    'http':80,
    'mysql':3306,
    'smtp':25
}

print(services.get('https','key not exist'))

在这里插入图片描述

5.遍历

services = {
    'http':80,
    'mysql':3306,
    'smtp':25
}

for k in services:
    print(k,services[k])

在这里插入图片描述

6.字典的练习

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

all_num = []
for item in range(1000):
    all_num.append(random.randint(20,100))

print(all_num)
sorted_nums = sorted(all_num)
num_dict = {}

for num in sorted_nums:
    if num in num_dict:
        num_dict[num] += 1
    else:
        num_dict[num] = 1

print(num_dict)

在这里插入图片描述2.统计一句话中的单词出现的个数
要求:

  1. 用户输入一句英文句子;
  2. 打印出每个单词及其重复的次数;
s = input('s:')
#1.把每个单词分割处理
s_li = s.split()
print(s_li)
#通过字典存储该单词和其出现的次数
word_dict = {}
"""
依次循环遍历列表
    如果列表元素不在字典的key中,将元素作为key 1作为value值
    如果列表元素在字典的key中,直接更新元素的value值,在原有的基础上加1
"""
for item in s_li:
    if item not in word_dict:
        word_dict[item] = 1
    else:
        word_dict[item] += 1
print(word_dict)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值