Python-字典

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


提示:以下是本篇文章正文内容,下面案例可供参考

一、字典是什么{}?

无序,可变键值对集合

二、定义

方式1
	{key: value, key: value...}
	例如
		{"name": "sz", "age": 18}
方式2
	fromkeys(S, v=None)
		静态方法
			类和对象都可以调用
		类调用
			dict.fromkeys("abc", 666)
				{'a': 666, 'c': 666, 'b': 666}
			此处的dict, 是指字典类型
		对象调用
			dic.fromkeys("abc", 666)
				{'a': 666, 'c': 666, 'b': 666}
			此处的dic, 是实例化的字典对象
注意
	key不能重复
		如果重复
		后值会把前值覆盖
	key必须是任意不可变类型
		例如
			可变
				列表
				字典
				可变集合
				...
			不可变
				数值
				布尔
				字符串
				元组
				...
person={"name":"ww","age":18,"age":19}
print(person)
a=dict.fromkeys("abc", 666)
print(a)
print(type(a))
b={1:1,2:2}.fromkeys("abc", 666)
print(b)
print(type(b))
结果:
{'name': 'ww', 'age': 19}
{'a': 666, 'b': 666, 'c': 666}
<class 'dict'>
{'a': 666, 'b': 666, 'c': 666}
<class 'dict'>

三、常用操作

增
	dic[key] = value
		当key在原字典中不存在时, 即为新增操作
删
	del  dic[key]
		key, 必须要存在
	dic.pop(key[, default])
		删除指定的键值对, 并返回对应的值
		如果key, 不存在, 那么直接返回给定的default值; 不作删除动作
		如果没有给定默认值, 则报错
			
	dic.popitem()
		删除按升序排序后的第一个键值对, 并以元组的形式返回该键值对
		如果字典为空, 则报错
			
	dic.clear()
		删除字典内所有键值对
			返回None
		注意, 字典对象本身还存在, 只不过内容被清空
			注意和del的区别
改
	只能改值, 不能改key
	修改单个键值对
		dic[key] = value
			直接设置, 如果key不存在, 则新增, 存在则修改
	批量修改键值对
		oldDic.update(newDic)
			根据新的字典, 批量更新旧字典中的键值对
			如果旧字典没有对应的key, 则新增键值对
person={"name":"ww","age":18,"age":19,"school":"iii","haha":8}
print(person)
person["weight"]=140
person["age"]=18
print(person)
newdic={"name":"ss","age":17}
person.update(newdic)
print(person)
del person["school"]
print(person.pop("haha"))
print(person.pop("ss",0))
print(person.popitem())
print(person)
print(person.clear())
print(person)
结果:
{'name': 'ww', 'age': 19, 'school': 'iii', 'haha': 8}
{'name': 'ww', 'age': 18, 'school': 'iii', 'haha': 8, 'weight': 140}
{'name': 'ss', 'age': 17, 'school': 'iii', 'haha': 8, 'weight': 140}
8
0
('weight', 140)
{'name': 'ss', 'age': 17}
None
{}
查
	获取单个值
		方式1
			dic[key]
				如果key, 不存在, 会报错
					
		方式2
			dic.get(key[, default])
				如果不存在对应的key, 则取给定的默认值default
				如果没有默认值,  则为None
					但不会报错
				但是, 原字典不会新增这个键值对
		方式3
			dic.setdefault(key[,default])
				获取指定key对应的值
				如果key不存在, 则设置给定默认值, 并返回该值
				如果默认值没给定
					则使用None代替(会改变之前的字典)
	获取所有的值
		dic.values()
	获取所有的键
		dic.keys()
	获取字典的键值对
		dic.items()
	遍历
		for in
		for x,y in info.items()
计算
	len(info)
		键值对的个数
判定
	x in dic
		判定dic中的key, 是否存在x
	x not in dic
		判定dic中的key, 是否不存在x
person={"name":"ww","age":18,"age":19,"school":"iii","haha":8}
print(person["name"],person.get("ss"),person.setdefault("ww"))
print(len(person))
print("ww" in person)
print("ss" in person)
print(person)
for x,y in person.items():
    print("k值:",x)
    print("value值:",y)
print(person.values())
print(person.keys())
print(person.items())
结果:
ww None None
5
True
False
{'name': 'ww', 'age': 19, 'school': 'iii', 'haha': 8, 'ww': None}
k值: name
value值: ww
k值: age
value值: 19
k值: school
value值: iii
k值: haha
value值: 8
k值: ww
value值: None
dict_values(['ww', 19, 'iii', 8, None])
dict_keys(['name', 'age', 'school', 'haha', 'ww'])
dict_items([('name', 'ww'), ('age', 19), ('school', 'iii'), ('haha', 8), ('ww', None)])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值