python14 字典类型

复制代码
字典类型 键值对方式,可变数据类型,所以有增删改功能
声明方式1 {} 大括号,示例 d = {key1 : value1, key2 : value2, key3 : value3 ....}
声明方式2 使用内置函数 dict() 创建
    1)通过映射函数创建字典
        zip(list1,list2)
继承了序列的所有操作
与列表不同的是元素是无序的
KEY不能重复,Value可以重复
复制代码
import  random
'''
字典类型 键值对方式,可变数据类型,所以有增删改功能
声明方式1 {} 大括号,示例 d = {key1 : value1, key2 : value2, key3 : value3 ....}
声明方式2 使用内置函数 dict() 创建
    1)通过映射函数创建字典
        zip(list1,list2)
继承了序列的所有操作
与列表不同的是元素是无序的
KEY不能重复,Value可以重复

'''
# 声明方式1 字典类型
dataDict = {10 : 'cat' , 20 : 'dog', 30 : 'pet', 20 : 'zoo'}
# key 相同时,value值进行覆盖操作
print(dataDict)

# 声明方式2 zip函数
list1 = [10,20,30,40]
list2 = ['cat','dog','pet','zoo','car']
zipobj = zip(list1, list2)
print(zipobj)
# 强转数据类型为字典
d = dict(zipobj)
print(d)

# 声明方式3 使用参数创建
dataDict1 = dict(cat = 10, dog = 20)
print(dataDict1)

# 元组做为KEY
t = (10,20,30)
print(f'元组做为KEY = {t,'val'}')

# 取值
userDict = {'name' : 'stevenChen', 'age' : 30, 'sex' : '男'}
# 取值1
print(f'取值1 :{userDict['name']}')
# 取值2
print(f'取值2 :{userDict.get('name')}')
# 以上两者的取值区别: 如果KEY不存在,userDict[key] 报错, get(key) 可以指定默认值
# 取值3
print(f'取值3 :{userDict.get('name_1')}')

# 遍历
for item in userDict.items():
    print(f'for item ->{item}')# key = value 组成的一个元素
# 分别获取key 和 value
for key,value in userDict.items():
    print(f'for key,value key={key},value={value}')
# 遍历 keys ,再根据KEY获取VALUE
for key in userDict.keys():
    print(f'for key => {key}, value->{userDict[key]}')

# 相关操作方法
# 添加元素
userDict['No'] = 5018
print(f'添加数据:{userDict}')

# 获取所有的key
keys = userDict.keys()
print(f'获取所有的key : {keys}')
# 转成列表查看
print(f'获取所有的转成列表查看keyList : {list(keys)}')
# 转成元组查看
print(f'获取所有的转成元组查看keyList : {tuple(keys)}')

# 获取所有的value值
values = userDict.values()
print(f'获取所有的values : {values}')
# 转成列表查看
print(f'获取所有的转成列表查看valueList : {list(values)}')
# 转成元组查看
print(f'获取所有的转成元组查看valueList : {tuple(values)}')

# 删除元素
userDict.pop('No')
print(f'删除元素:{userDict}')
# 删除不存的元素
print(f'删除元素带默认值:{userDict.pop('No','不存在')}')

# 随机删除
print(f'随机删除:{userDict.popitem()}')
print(f'随机删除后:{userDict}')

# 清除所有元素
userDict.clear()
print(f'清除所有:{userDict}')

# python中一切皆是对象,每个对象都有一个布尔值
print(f'布尔值:{bool(userDict)}') #空字典,字列表 的布尔值为False

# 字典生成式
'''
d = {key : value for item in range}
d = {key : value for key,value in zip(list1 , list2)}
'''
print('字典生成式')
d = {item : random.randint(1, 100) for item in range(4)}
print(d)

# 创建两个列表
list10 = [1001,1002,1003]
list11 = ['张三','李四','王五']
d2 = {key : value for key,value in zip(list10, list11)}
print(d2)

END

相关推荐
啊森要自信17 分钟前
【GUI自动化测试】Python 自动化测试框架 pytest 全面指南:基础语法、核心特性(参数化 / Fixture)及项目实操
开发语言·python·ui·单元测试·pytest
赵谨言28 分钟前
基于python智能家居环境质量分析系统的设计与实现
开发语言·经验分享·python·智能家居
十安_数学好题速析1 小时前
数论探秘:如何用模4思想破解平方数谜题
笔记·学习·高考
程序员三藏1 小时前
银行测试:第三方支付平台业务流,功能/性能/安全测试方法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·安全性测试
程序员晚枫1 小时前
Python版本进化史:从3.6到3.14,每个版本都带来了什么惊喜?
python
cmc10281 小时前
127.XIlinx fpga端的pcie(XDMA)与驱动是如何交换数据的
笔记·fpga开发
optimistic_chen1 小时前
【Java EE进阶 --- SpringBoot】Mybatis操作数据库(基础二)
xml·数据库·spring boot·笔记·java-ee·mybatis
程序猿小D1 小时前
【完整源码+数据集+部署教程】 【零售和消费品&存货】【无人零售】自动售卖机饮料检测系统源码&数据集全套:改进yolo11-KernelWarehouse
python·yolo·计算机视觉·目标跟踪·数据集·yolo11·自动售卖机饮料检测系统
寒怜z1 小时前
python 景区游客量统计
python
程序员晚枫2 小时前
Python 3.14发布:多解释器让性能飙升300%,GIL时代即将终结!
python