【python 基础篇 七】python的常用数据类型操作——字典

liftword2周前 (12-18)技术文章16

#挑战30天在头条写日记#

1.字典的基本概念

  • 无序的,可变的键值对集合

2.字典的定义

  • 方式1:{key:value,key:value,.....}
    • 例如{“name”:“sz”,“age”:18}
  • 方式2:fromkeys(S,v=None)
    • 静态方法:类和对象都可以调用
    • 类调用:dict.fromkeys("abc",666) 输出:{'a':666,'b':666,'c':666}
    • 对象调用:dic.fromkeys("abc",666)输出:{'a':666,'b':666,'c':666} 此处的dic,是实例化的字典对象
  • 注意
    • key不能重复 当重复时后面会把前面的值覆盖
    • key必须是任意不可变类型
      • 可变类型:列表,字典,可变集合
      • 不可变类型:数值,布尔,字符串,元组
    • key必须是任意不可变类型的原因
      • python的字典,采用哈希表的方式实现
      • 哈希表是一个列表把key---value按某种转换方式,key转换成索引 value转换成值存入表内
  • 字典的存在意义
    • 可以通过key,访问对应的值,使得这种访问变得更具有意义
    • 查询效率得到很大提升
#方式1
person = {"name":"sz","age":18}
print(person["name"])#输出 sz
print(person["age"])#输出 18

#方式2
#类调用
d = dict.fromkeys("abc")
print(d)#{'a': None, 'b': None, 'c': None}
c = dict.fromkeys("abc",666)
print(c)#{'a': 666, 'b': 666, 'c': 666}
d = dict.fromkeys([1,2,3],666)
print(d)#{1: 666, 2: 666, 3: 666}
#对象调用  此方式不常用 没有什么意义
e = {1:2,2:2}.fromkeys([1,2],666)
print(e)#{1: 666, 2: 666}

3.字典的常用操作

3.1 字典的增加操作

  • dic[key] = value
  • 当key在原字典中不存在时,即为新增操作
person = {"name":"sz","age":18}
person["性别"] = "男"
print(person)#输出 {'name': 'sz', 'age': 18, '性别': '男'}

3.2 字典的删除操作

  • del dic[key]
  • dic.pop(key,default(可省略))
    • 删除指定的键值对,并返回对应的值
    • 如果key,不存在,那么直接返回给定的default的值,不做删除操作,如果没有给定值,就会报错
  • dic.popitem()
    • 删除最后的键值对,并以元组的形式返回该键值对,如果字典为空,则报错
  • dic.clear()
    • 删除字典内所有键值对
#del语句
person = {"name":"sz","age":18,"height":185}
del person["name"]
print(person)#输出 {'age': 18, 'height': 185}
del person["name1"]#此时key的值不在字典中会报错

#dic.pop()
person = {"name":"sz","age":18,"height":185}
v = person.pop("name")
print(v)#输出 sz
print(person)#输出 {'age': 18, 'height': 185}

v = person.pop("name1",0)
print(v)#输出 0
print(person)#输出 {'name': 'sz', 'age': 18, 'height': 185}

v = person.pop("name1")#此处会报错,没有key值,同时没有指定default值就会报错

#dic.popitem()
person = {"name":"sz","age":18,"height":185}
result = person.popitem()
print(person)#输出{'name': 'sz', 'age': 18}
print(result)#输出('height', 185)

#dic.clear()
person = {"name":"sz","age":18,"height":185}
person.clear()print(person)#输出 {}

3.3 字典的修改操作

  • 只能改值,不能改key
  • 修改单个键值对
    • dic[key] = value
  • 批量修改键值对
    • oldDic.update(newDic)
#修改单个键值对
person = {"name":"sz","age":18,"height":185}
person["height"] = 186
print(person)#输出:{'name': 'sz', 'age': 18, 'height': 186}

#批量修改键值对
person = {"name":"sz","age":18,"height":185}
person.update({"age":23,"address":"北京","phone":"153555"})
print(person)#输出:{'name': 'sz', 'age': 23, 'height': 185, 'address': '北京', 'phone': '153555'}

3.4 字典查询操作

  • 获取单个值
    • dic[key]
      • 如果key不存在,就会报错
    • dic.get(key,default)
      • 如果不存在对应的key,则取给定的默认值default
      • 如果没有默认值,则为None ,不会报错
    • dic.setdefault(key,default)
      • 获取指定key对应的值,如果key不存在,则会在字典中设置对应的key并赋值为default,并返回该值,如果默认值没有给定,则使用None代替
  • 获取所有的值
    • dic.values()
  • 获取所有的键
    • dic.keys()
  • 获取字典的键值对
    • dic.items()
  • 遍历
    • for in
    • for x,y in info.items
#获取单个值
#- dic[key]
person = {"name":"sz","age":18,"height":185}
print(person["name"])#输出 sz
print(person["name1"])#输出 报错

#- dic.get(key,default)
person = {"name":"sz","age":18,"height":185}
print(person.get("name"))#输出 sz
print(person.get("name1"))#输出 None
print(person.get("name1",0))#输出 0

#- dic.setdefault(key,default)
person = {"name":"sz","age":18,"height":185}
print(person.setdefault("name"))#输出 sz
print(person.setdefault("name1"))#输出 None
print(person)#输出 {'name': 'sz', 'age': 18, 'height': 185, 'name1': None}
print(person.setdefault("name2",0))#输出 0
print(person)#输出{'name': 'sz', 'age': 18, 'height': 185, 'name1': None, 'name2': 0}

#获取所有的值 dic.values()
person = {"name":"sz","age":18,"height":185}
print(person.values())#输出 dict_values(['sz', 18, 185])  列表

#获取所有的键 dic.keys()
person = {"name":"sz","age":18,"height":185}
print(person.keys())#输出 dict_keys(['name', 'age', 'height'])  列表

#获取字典的键值对 dic.items()
person = {"name":"sz","age":18,"height":185}
print(person.items())#输出 dict_items([('name', 'sz'), ('age', 18), ('height', 185)])  列表 元组

#遍历 
#方式一
#先遍历所有的key 然后,根据指定的key,获取到对应的值
person = {"name":"sz","age":18,"height":185}
keys = person.keys()
#遍历所有的key
for key in keys:
    print(key)
    print(person[key])
    
#方式二  
#获取字典
kvs = person.items()#获取的是列表 列表内容为元组
for x,y in kvs:#元组的解包
    print(x)
    print(y)
"""
name
sz
age
18
height
185
"""

3.5 字典的计算

  • len(dic)
    • 计算键值对的个数
person = {"name":"sz","age":18,"height":185}
print(len(person))#输出 3

3.6 字典的判定

  • x in dic
    • 判定dic中的key,是否存在x
  • x not in dic
    • 判定dic中的key,是否不存在x
  • dic.has_key(key) 已经过期,建议使用in来代替
person = {"name":"sz","age":18,"height":185}
print("age" in person)#输出 True
print("address" in person)#输出 False



相关文章

Python小案例43-字典的操作和方法

Python字典是一种无序、可变的数据类型,用于存储键值对。下面是一些常用的字典操作和方法:创建字典:使用花括号{}和冒号:来创建字典,例如:my_dict = {'key1': &#...

python 字典(dict)之创建、访问、修改及小案例

字典(1)在Python中,字典是一系列[键:值]对 。(2)每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象...

Python教程-字典 字典 python

作为软件开发者,我们总是努力编写干净、简洁、高效的代码。在这篇文章中,我们将介绍你需要知道的关于Python中字典的一切,包括它们是什么,它们如何工作,以及如何在你的代码中有效地使用它们。什么是 Py...

掌握Python字典写入文件的技巧 python怎么把字典写到文件中

Python字典写入文件有多种方法,本文主要介绍以文本格式、JSON格式、CSV格式写入文件的常用方法。以文本格式写入文件如果字典中的值都是简单的数据类型(如字符串、整数、浮点数等),可以将字典转换为...

合并 Python 词典的 4 种方法! 合并两个python字典

Merging 字典是 Python 编程中的一项常见任务,在整合数据或聚合配置时通常需要。Python 提供了多种方法来实现这一目标,每种方法都适用于不同的场景。1. 字典推导式details =...

Python必学之字典基础操作 python 字典的用法

6、字典6.1字典定义6.2 增加键值对字典[键]=值注意:键必须在字典中不存在,否则起到修改值的作用例子:d={'1':'a'} d['3']=&#...