Python入门(四)——(字典、id)

本文深入探讨了Python字典的使用,包括增(setdefault())、删、改、查的方法,以及如何通过.fromkeys()创建字典。还介绍了字典的嵌套操作、排序和遍历技巧。同时,讲解了id()函数用于查看变量内存地址的用法。

1. 字典(无序,唯一的映射类型)

  • 采取键值对存储(key-value)
  • 哈希函数运算
  • key必须不可变(整型,字符串,元组)
  • 字典采取以键值对为标准进行存储
  • 键是唯一的

1.1 增 .setdefault()

若有该键则不对值进行修改,否则添加设定值

dic1 = {'name': 'zhao', 'age': 26, 'salary': 2000}
print(dic1)
dic1.setdefault('name', 'ren')
print(dic1)
dic1.setdefault('like', 'meat')
print(dic1)

演示:
在这里插入图片描述

1.2 删

dic = {'name': 'zhao', 'age': 26, 'salary': 2000}
del dic['name'] #根据键删除键值对
dic.pop('age') #根据键删除键值对,并返回键对应的值
dic.popitem() #随机删除一组,返回键值对元组,但是每次重复运行删除的一样
dic.clear() #清空,但保留字典对象
del dic #删除字典对象

演示:
在这里插入图片描述

1.3 改

dic1 = {'name': 'zhao', 'age': 26, 'salary': 2000}
dic2 = {'name': 'xu', 'height': 180, 'like': 'meat'}

dic1['name'] = 'hah' #通过键修改值
dic1.update(dic2) #将dic2的内容更新到dic1中,有相同键则覆盖值,没有相同键增加;无返回值,dic1更新,dic2不变

演示:
在这里插入图片描述

1.4 查

dic1 = {'name': 'zhao', 'age': 26, 'salary': 2000}

dic1['name'] #通过键查值

dic1.keys() #返回dict_keys类型,可用list()进行强制类型转换
dic1.values() #返回dict_values类型,可用list()进行强制类型转换
dic1.items() #返回dict_items类型,可用list()进行强制类型转换, 元素为元组(tuple)

演示:
在这里插入图片描述

1.5 .fromkeys() 操作创建

dic = {}.fromkeys(['host1', 'host2', 'host3'], 67)
dic
dic['host1'] = 56
dic1 

演示:
在这里插入图片描述

另外一种操作涉及深浅拷贝

dic = {}.fromkeys(['host1', 'host2', 'host3'], [67, 89,90])
dic
dic['host1'][1] = 56
dic

演示:
在这里插入图片描述

1.6 字典嵌套

dic = {
	'Hubei':{
		'Wuhan':{},
		'Xiangyang':{},
		'Huangshi':{}
		},
	'Henan':{},
	'Shanxi':{}
	}

增删改查按照正常字典的逻辑操作就可以

1.7 字典排序

dic = {'name': 'zhao', 'age': '26', 'salary': '2000'}
#以下按照首字母ASCII码位置排序,返回列表
sorted(dic) #返回键组成的列表
sorted(dic.keys()) #返回键组成的列表
sorted(dic.values()) #返回值组成的列表
sorted(dic.items())  #返回键值对元组组成的列表

演示:
在这里插入图片描述

1.8 字典遍历

dic = {'name': 'zhao', 'age': '26', 'salary': '2000'}
for i in dic:       #默认就是遍历键,等价于for i in dic.keys()
	print(i, dic[i])

#不建议用下面的方式找键对应的值,效率低
for i, v in dic.items():
	print(i, v)

演示:
在这里插入图片描述

2. id() 查看变量地址

a = 10
id(a) #返回地址值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值