Python——字典及其特性,常用方法

字典的定义

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

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 = {
    'westos':[11,22,33],
    'mysql':[44,55,66]
}
print(s)
print(type(s))

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

d = dict()
print(type(d))

在这里插入图片描述

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

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

students = {
    '02165071':{
        'name':'zyw',
        'age':'18'
    },
    '02165070':{
        'name':'lhr',
        'age':'19'
    }
}
print(students['02165071']['name'])

在这里插入图片描述

所有的key的value值相同

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

在这里插入图片描述

字典的特性

字典,不支持索引和切片,但可通过key值查询values值,key值唯一

字典不支持索引

在这里插入图片描述

字典不支持切片

在这里插入图片描述字典的重复和连接无意义
字典的key值是唯一的
成员操作符

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

在这里插入图片描述
for循环,默认遍历字典的key值

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

遍历字典

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)

在这里插入图片描述

字典的增加

如果key值存在,则更新对应的value值,如果key值不存在,则添加对应的key-value数值

service = {
    'http':80,
    'mysql':3306,
    'smtp':25
}
service['ftp'] = 21
print(service)

在这里插入图片描述

service = {
    'http':80,
    'mysql':3306,
    'smtp':25
}
service['ftp'] = 21
print(service)
service['http'] = 443
print(service)

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

service = {
     'http':80,
     'mysql':3306,
     'smtp':25
}
service_backup = {
    'https':443,
    'tomcat':8080,
    'http':8080
}
service.update(service_backup)   #service变,service_backup不变
print(service)

在这里插入图片描述

service = {
     'http':80,
     'mysql':3306,
     'smtp':25
}
service_backup = {
    'https':443,
    'tomcat':8080,
    'http':8080
}
service.update(flask=9000,http=8000)
print(service)

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

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

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

在这里插入图片描述

字典的删除

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

在这里插入图片描述

pop删除

pop删除指定的key的key-value
如果key存在,删除,并返回删除key对应value
如果不存在,报错

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

在这里插入图片描述

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

在这里插入图片描述

popitem

popitem删除最后一个key-value值对

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

在这里插入图片描述

clear

clear 清空字典内容

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

在这里插入图片描述

字典的查看

查看字典的key值

print(services.keys())

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

在这里插入图片描述

查看字典的value值

print(services.values())

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

在这里插入图片描述

查看字典的key-value值

print(services.items())

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

在这里插入图片描述

查看key的value值

key不存在,默认返回None
key不存在,有default,则返回default值

service = {
    'http':80,
    'mysql':3306,
    'smtp':25
}
print(service.get('https'))

在这里插入图片描述

service = {
    'http':80,
    'mysql':3306,
    'smtp':25
}
for k in service:
    print(k,service[k])

在这里插入图片描述

get方法

如果key值存在,返回
如果不存在,默认返回None,如果需要指定返回值,传值即可

service = {
    'http':80,
    'mysql':3306,
    'smtp':25
}
print(service.get('https','key is not exit'))

在这里插入图片描述

字典练习

练习01

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

import random
all_num = []
for item in range(1000):
    all_num.append(random.randint(20,100))
print(all_num)
sorted_num = sorted(all_num)
num_dict = {}

for num in sorted_num:
    if num in num_dict:
        num_dict[num] += 1
    else:
        num_dict[num] = 1
print(num_dict)

在这里插入图片描述

练习02

输入一串字符串,统计每个单词出现的次数
例如:
‘westos hello python westos’
westos 2
hello 1
python 1

思路:
1.把该字符串分割处理,以空格为分隔符
2.定义一个空字典,用字典存储该单词和他出现的次数
3.依次遍历循环列表,如果列表元素不再字典的key中,将元素key的value值为1,如果列表的元素在字典的key中,直接更新该key对应的value值,在原有的基础上加1

str = input('请输入: ')
str_list = str.split()
print(str_list)

dict = {}
for item in str_list:
    if item not in dict:
        dict[item] = 1
    else:
        dict[item] += 1
print(dict)

在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值