字典的学习

本文介绍了Python中字典的数据结构,包括字典的创建、键值对的定义、使用zip和dict函数创建字典,以及字典元素的访问、遍历、相关操作如添加、删除和生成式。
摘要由CSDN通过智能技术生成

1、字典类型

key-键;value-值。这两者构成了一个键值对

字典是可变数据类型,具有增、删、改等一些的操作。

字典中的键要求是不可变序列,可以为整数、浮点、字符串、元组等不可变数据类型。但列表不行,列表为可变数据类型。(使用列表,会报错TypeError: unhashable type: 'list')

#(1)创建字典
d={10:'cat',20:'dog',30:'pet',20:'zoo'}
print(d)#当key相同时,value值会进行了覆盖

#(2)zip函数
lst1=[10,20,30,40]
lst2=['cat','dog','pet','zoo','car']
zipobj=zip(lst1,lst2)
print(zipobj)#<zip object at 0x000002328948FE00>
#print(list(zipobj))#[(10, 'cat'), (20, 'dog'), (30, 'pet'), (40, 'zoo')]

#使用dict函数
d=dict(zipobj)
print(d)#{10: 'cat', 20: 'dog', 30: 'pet', 40: 'zoo'}

#使用参数创建字典
d=dict(cat=10,dog=20)#左侧cat是key,右侧是value
print(d)

#使用元组
t=(10,20,30)
print({t:10})#t是key,10是value,元组可以作为字典中的键

#使用列表,会报错TypeError: unhashable type: 'list'
# lst=[10,20,30]
# print({lst:10})

#字典属于序列
print('max:',max(d))
print('min:',min(d))
print('len:',len(d))

#字典的删除
del d

2、字典元素的访问及遍历

d={'hello':10,'world':20,'puython':30}
#访问字典的元素
#(1)使用d[key]
print(d['hello'])
#(2)d.get(key)
print(d.get('hello'))

#二者之间的区别,如果key不存在,d[key]报错;d.get(key)可以指定默认值
# print(d['java'])#KeyError: 'java'
print(d.get('java'))#None
print(d.get('java','不存在'))#指定默认值为“不存在”


#字典的遍历
for item in d.items():
    print(item)#有key=value组成的一个元组类型

#在使用for循环遍历时,分别获取key,value
for key,value in d.items():
    print(key,value)

3、字典的相关操作

c={1:'东',2:'西',3:'南',4:'北'}
print(c)

#向字典中添加元素
c[5]='左'#直接使用赋值运算符向字典中添加元素
print(c)

#获取字典中所有的键
keys=c.keys()
print(keys)#获得了一个对象:dict_keys([1, 2, 3, 4, 5])
print(list(keys))#转换为列表类型
print(tuple(keys))#转换为元组类型

#获取字典中的所有的value
values=c.values()
print(values)#dict_values(['东', '西', '南', '北', '左'])
print(list(values))
print(tuple(values))

#如何将字典中的数据转成key-value的形式,以元组的方式进行展现
lst=list(c.items())
print(lst)
#转换为字典类型
c=dict(lst)
print(c)

#使用pop函数删除元素
print(c.pop(1))#将元素取出
print(c)#查看删除后的字典
#删除不存在的值,可以设置一个默认值
print(c.pop(1,'不存在'))

#随机删除
print(c.popitem())#查看随机删除了那个元素
print(c)#查看删除后的字典

#清空后的所有元素
c.clear()
print(c)

#python中一切皆对象,每个对象都有一个布尔值
print(bool(c))#空字典的布尔值为False

3、字典的生成式

import random
d={item:random.randint(1,100) for item in range(4)}
#以0、1、2、3作为键;以1-100的随机数作为值
print(d)

#创建俩个列表
lst=[1001,1002,1003]
lst2=['东','南','西']
d={key:value for key,value in zip(lst,lst2)}
print(d)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值