python基础-字典

本文详细介绍了Python字典的格式、创建、查看、修改、删除元素等操作,包括get、setdefault、update等方法,以及遍历字典的各种方式。此外,还强调了字典键的哈希特性及不可变性。

字典

格式

{‘键1’:’值1’,…,’键n’:’值n’}

可以存储多种类型的值

操作

创建

  • a={}
  • a={键值对1,键值对2…}
  • a=dict(赋值语句,赋值语句2…)
  • a=dict()
  • a = dict(zip([‘one’, ‘two’, ‘three’], [1, 2, 3]))
  • a = dict([(‘two’, 2), (‘one’, 1), (‘three’, 3)])
  • a = dict({‘three’: 3, ‘one’: 1, ‘two’: 2})
  • a = dict.fromkeys([’s’, ‘d’], 8) # 类方法

查看元素

  • 键找值
    • a[键]
    • 没有键的时候抛异常
  • get
    • 字典对象.get(键[,默认值])
    • 获取指定键的值,没有找到不会抛异常,也可以设置默认值

修改元素

a[key]

格式同修改,也是赋值语句,但是在没有查到该元素的情况下就会自动将该键值对添加

setdefault(key[, default])

如果key存在,那么返回对应的value

如果不存在,创建给键值对,赋值默认值为value,并返回该默认值

d.update(d_other)

合并字典,如果存在相同的键值,d_other的数据会覆盖掉D的数据,返回None

删除元素

del

格式:del 字典对象[键]

删除字典中特定元素

clear

格式:字典对象.clear()

清空整个字典

pop

格式:字典对象.pop(key[,default])

如果key在字典中,移除该键值对,并返回设置的默认值

如果key不存在,并且默认值没有给,那么抛出KeyError错误

popitem()

随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()方法效率很高

其他

d[key]

字典对象[“key”]

如果key存在,则返回对应value,如果不存在,抛出KeyError的错误

如果dict的子类重写了__missing__方法,当key不存在的时候,默认会将这个key值传入该方法,调用该方法管理当key不存在时的情况。

class Counter(dict):  # 继承dict
    def __missing__(self,key):  # 重写missing方法
        """在d[key]的时候,如果key不存在就会将对应的key输入值传入"""
        return 0
c = Counter()
c['red']  # 返回0
c['red'] += 1
c['red']  # 返回1
len()

len(字典对象)

测量字典中,键值对个数

keys()

字典对象.keys()

返回字典对象所有键组成的列表

values()

字典对象.values()

返回字典中所有值组成的列表

items()

字典对象.items()

返回一个所有由键值对组成的元组的列表

key in d

键 in 字典对象

如果该键存在,就返回True,否则,返回False

key not in d

和上面相反,不再赘述

iter(d)/iter(d.keys)

iter(字典对象)/iter(字典对象.keys)

返回字典key组成的生成器

copy()

返回一个浅拷贝对象

遍历

遍历键组成的列表,然后根据每个键获取值

元素

遍历通过items()获取键值对组成的元组

键值对

遍历通过items()获取的键值对元组的时候,直接使用两个k,v变量接收

for key,value in dict.items():
    使用key,value的代码

(key中存储的是键,value中存储的是值)

扩展(enumerate())

用于将一个可遍历的数据对象组合成一个索引序列,同时列出数据和数据下标,一般用在for循环中。

 chars=['a','b','c']
for i,chr in enumerate(chars):
    使用下边i和元素chr的代码

注意点

可变类型不能作为字典的键,因为字典的键需要进行哈希计算

### Python 字典基础知识 #### 什么是字典 字典(dictionary)是Python中非常有用的一个内置数据类型[^2]。它是一个无序的对象集合,其中每个元素由一个键值对组成。与列表不同的是,列表是有序的对象集合,并且通过索引来访问元素;而字典则是通过键来存取对应的值。 #### 创建字典 创建字典的方式有多种: - 使用花括号 `{}` 和冒号 `:` 来定义键值对: ```python person = {"name": "Alice", "age": 30} ``` - 使用`dict()` 构造函数: ```python person = dict(name="Bob", age=25) ``` #### 访问字典中的值 可以通过指定的键名来获取相应的值: ```python print(person["name"]) # 输出 Alice 或 Bob ``` 如果尝试访问不存在的键,则会抛出 KeyError 错误。为了避免这种情况发生,可以使用 get() 方法,在找不到键的情况下返回 None 或者自定义默认值: ```python print(person.get('height', 'Not Available')) ``` #### 修改和添加新条目 向现有字典中增加新的键值对很简单,只需赋值即可: ```python person['city'] = 'Beijing' ``` 更新已有键所关联的数据同样如此操作。 #### 删除字典项 删除单个键值对可采用 del 关键字: ```python del person['age'] ``` 清空整个字典则可以用 clear(): ```python person.clear() ``` #### 遍历字典 遍历字典时可以选择只迭代键、只迭代值或是同时迭代两者: ```python for key in person.keys(): # 迭代所有的key print(key) for value in person.values(): # 迭代所有的value print(value) for k, v in person.items(): # 同时迭代keys和values print(f"{k}: {v}") ``` #### 字典推导式 类似于列表推导式的语法也可以应用于构建字典: ```python squares = {x: x*x for x in range(6)} ``` 以上介绍了关于 Python字典的一些基本概念及其常见的操作方式。掌握这些内容有助于更好地理解和运用这种强大的数据结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值