07_Python字典

一、创建字典

dict字典是一个无序的数据集合,使用print输出字典的时候,通常输出的顺序和定义的顺序不一致
1、空字典
2、key-value 键值对:key–不可变数据类型 value—可以是任意数据类型
3、工厂函数:dict()
4、fromkey
在这里插入图片描述

二、访问字典的值

在这里插入图片描述

三、基本操作

字典是无序的,所以不支持索引和切片

len(d),返回字典d中的键值对的数量
d[key],返回字典d中键(key)的值(value)
d[key]=value,将值(value)赋值给字典d中的键(key)
del d[key],删除字典d的键(key')项(将该键值对删除)
key in d ,检查字典d中是否含有键为key的项

四、字典的方法

在这里插入图片描述
1)、增加

# 创建字典
services = {
    'ssh': 22,
    'mysql': 3306
}

# # 1). 根据key值增加;services[key], 如果key不存在, 增加键值对; 如果key已经存在, 更新key对应的value值;
# services['http'] = 80
# print(services)
# services['ssh'] = 80
# print(services)

# # 2). setdefault, 如果key不存在, 增加键值对; 如果key已经存在,不做任何操作;
# services.setdefault('http', 80)
# print(services)
#
# services.setdefault('ssh', 80)
# print(services)

# 3). update,(和第一种方法的区别: 可以一次更新多个键值对) 如果key不存在, 增加键值对; 如果key已经存在, 更新key对应的value值;
services.update({'http':80, 'ftp':21})
print(services)
services.update({'ssh': 80})
print(services)

在这里插入图片描述

2、删除

# 创建字典
services = {
    'ssh': 22,
    'mysql': 3306
}



# # 1). 删除ssh对应的键值对
# del services['ssh']
# print(services)


# # 2). 删除ssh对应的键值对, 并返回ssh对应的value值, 可以保存并使用;
# popReturn =  services.pop('ssh')
# print(services)
# print(popReturn)


# # 3). 随机删除字典的key-value值;
# services.popitem()
# print(services)


# 4). clear
services.clear()
print(services)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、查找

# 创建字典
services = {
    'ssh': 22,
    'mysql': 3306,
}
print(services.keys())
print(services.values())
print(services.items())


# # 如何遍历字符串?
# for item in 'hello':
#     print(item, end=',')
#
# # 如何遍历列表?
# for item in [1, 2, 3]:
#     print(item , end=':')
# # 如何遍历元组?
# for item in (1, 2, 3):
#     print(item )

# 如何遍历字典?
# 1). 遍历字典, 默认遍历的是字典的key值;
for item in services:
    print(item)

# 2). 遍历字典的所有value值;
for value in services.values():
    print(value)

#  3). 获取字典的key-value对: [('ssh', 22), ('mysql', 3306)]
# item = ('ssh', 22)
for key,value in services.items():
    print(key, '->', value)

在这里插入图片描述

在这里插入图片描述

五、练习

1、

"""
 重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.>;
    # 1. 用户输入一句英文句子;
    # 2. 打印出每个单词及其重复的次数;
 "hello java hello python"
# hello 2
# java 1
# python 1
"""
s = input('s:')
 
#1.把每个单词分割处理
s_li = s.split()
 
#2.通过字典存储该单词和其出现的次数
word_dict = {}
 
"""
3.依次循环遍历列表
    如果列表元素不在字典的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)

在这里插入图片描述
2、

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

b = []
num_dict = {}
##随机生成1000个[20,100]的随机数
for i in range(100):
    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, '次')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值