Python学习日记3------字典

字典是python内置的数据结构之一,与列表一样是一个可变序列(可进行增删改)。

一、字典的创建

1、使用{}
dic = {'nihao':123,'lll':456}
nihao为键,123为值
dic1 = {'hello':111,'python':222,'zj':333}
print(dic1)#{'hello': 111, 'python': 222, 'zj': 333}
2、使用内置函数dict()
dic2 = dict(name='yuzu',age=24,ah='hh')
print(dic2){'name': 'yuzu', 'age': 24, 'ah': 'hh'}

3、空字典
dic3 = {}
print(dic3)#{}

二、字典中元素的获取

[]如果字典中不存在指定的key,抛出keyError异常。
get()方法取值,如果字典中不存在指定的key,返回None,可以通过参数设置默认的value,以便指定的key不存在时返回

dic1 = {'hello':111,'python':222,'zj':333}
#第一种,使用[]
#print(dic1['333'])#键不存在  KeyError: '333'
print(dic1['hello'])#111

#第二种方式,使用get()方法
print(dic1.get('333'))#None
print(dic1.get('hello'))#111
print(dic1.get('li',88))#88  88是在查找li所对应的value不存在时,提供的一个默认值

三、字典的常用操作

key的判断
		 in指定的key在字典中存在返回True,
         not in指定的key不在字典中存在返回True

字典元素的删除、新增

		#key的判断
		dic1 = {'hello':111,'python':222,'zj':333}
		
		print('hello' in dic1)#True
		print('222' not in dic1)#True
		
		del dic1['hello']#删除指定的key-value键值对
		print(dic1)#{'python': 222, 'zj': 333}
		
		#dic1.clear()#清空字典的元素
		#print(dic1)#{}
		
		dic1['yuzu']=100#新增元素
		print(dic1)#{'python': 222, 'zj': 333, 'yuzu': 100}
		
		dic1['python']=000#修改元素
		print(dic1)#{'python': 0, 'zj': 333, 'yuzu': 100}

获取字典视图

#keys()获取字典中所有key

dic1 = {'hello':111,'python':222,'zj':333}
_keys = dic1.keys()
print(_keys)#dict_keys(['hello', 'python', 'zj'])
print(type(_keys))#<class 'dict_keys'>

#将所有的keys转化为列表
print(list(_keys))#['hello', 'python', 'zj']

#values()获取字典中所有value
_values = dic1.values()
print(_values)#dict_values([111, 222, 333])
print(type(_values))#<class 'dict_values'>
print(list(_values))#[111, 222, 333]

#items()获取字典中所有key-value对
_items = dic1.items()
print(_items)#dict_items([('hello', 111), ('python', 222), ('zj', 333)])
print(type(_items))#<class 'dict_items'>
#转换之后的列表元素是由元组组成的
print(list(_items))#[('hello', 111), ('python', 222), ('zj', 333)]

字典元素的遍历(4种)

info = {'ni':1,'wo':2,'ta':3,'za':4,'ss':5}
#第一种方式:直接for...in循环字典,for...in循环获取的是key
for x in info: 
    print(x,':',info[x],end='\t')

#第二种方式:获取到所有的key,然后再遍历key,根据key获取value
print()
for x in info.keys():
    print(x,':',info[x],end='\t')

#第三种方式:获取到所有的value
#只能拿到值,不能拿到key
print()
for x in info.values():
    print(x,end='\t')

#第四种方式:
print()
for k,v in info.items():
    print(k,':',v,end='\t')

字典的特点

1、字典中的所有元素都是一个key-value对,key不允许重复,
value可以重复,如果key重复了,后一个key对应的值会覆盖前一个
dic1 = {'李':111,'李':222}
print(dic1)#{'李': 222}
dic2 = {'李':111,'ni':111}
print(dic2)#{'李': 111, 'ni': 111}

2、字典中的元素是无序的
字典中的value可以是任意数据类型,key必须是不可变数据类型,一般使用字符串
字典也可以根据需要动态的伸缩
字典会浪费较大的内存,是一种使用空间换时间的数据结构

字典生成式

内置函数zip()用于将可迭代对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表。

_item = ['Food','Book','Desk']
_price = [45,56,78]
_dict = {item:price for item,price in zip(_item,_price)}
print(_dict)#{'Food': 45, 'Book': 56, 'Desk': 78}
_dict2 = {item.upper():price for item,price in zip(_item,_price)}
print(_dict2)#{'FOOD': 45, 'BOOK': 56, 'DESK': 78}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值