字典类型 键值对方式,可变数据类型,所以有增删改功能 声明方式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