Python字典-无序的键值对集合

liftword4个月前 (01-13)技术文章45

Python字典-无序的键值对集合

  • 字典允许管理和存储键值对集合
  • 字典是可改变的。
  • 字典不会保持增加键值对时的顺序,这个顺序毫无意义。

字典长啥样?

Bash
person = {'name':'xiaowoniu', 'age':10}

字典不维持插入顺序

列表会维持对象插入时的顺序,字典不会这么做。

字典的取值

字典用中括号取值

Bash
>>>person = {'name':'xiaowoniu', 'age':10}
>>>person['name']
'xiaowoniu'

字典查找速度很快

字典使用了高度优化的散列算法,解释器能够快速的访问一个键关联的值。

字典的赋值

Bash
>>> person = {'name':'xiaowoniu', 'age':10}
>>> person['age'] = 30
>>> person
{'name': 'xiaowoniu', 'age': 30}

字典迭代

for循环迭代字典的键值对时,当前数据的键会付给k

Bash
person = {'name':'xiaowoniu', 'age':10, 'home':'jilin'}
for k in person:
    print('k is', k, 'values is', person[k] )

k is age values is 10
k is home values is jilin

用items迭代字典

items 是字典提供的内置方法,该方法返回一个键值对列表。

Bash
person = {'name': 'xiaowoniu', 'age': 10, 'home': 'jilin'}
for k, v in person.items():
    print('k is', k, 'values is', v)

k is name values is xiaowoniu
k is age values is 10
k is home values is jilin

如何避免KeyError

首先看一组代码,访问不存在的key时,将报错KeyError

Bash
>>> p = {}
>>> p['name'] = '111'
>>> p['age']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

避免KeyError可以先判断键是否存在,

  • 用in检查成员关系。
Bash
p = {}
if 'name' in p:
    print(True)
else:
    print(False)

False
  • 使用get Default方法
Bash
p = {}
print(p.get('name', 'zhf'))

zhf

当然,除了in和get Default,还可以使用not in和setDefault方法。

欢迎访问个人小站Introduction · 小蜗牛的site

相关文章

python字典中如何添加键值对

添加键值对首先定义一个空字典 1>>> dic={}直接对字典中不存在的key进行赋值来添加123>>> dic['name']='zhangsan'>>...

python碰撞检测与鼠标/键盘的输入

碰撞检测与鼠标/键盘的输入本章的主要内容:● 碰撞检测;● 当遍历一个列表时切勿对其进行修改;● Pygame 中的键盘输入;● Pygame 中的鼠标输入。碰撞检测负责计算屏幕上的两个物体何时彼此接...

python 字典插入新的健值对的方法

在 Python 中,可以使用下标运算符([])或 update() 方法向字典中插入新的键值对。使用下标运算符插入键值对的语法如下所示:my_dict = {'apple': 1,...

python基础——字典详解

一、简述字典是一种可变容器模型,可以存储任意类型的对象。字典使用键值对格式,每个键值之间用":"分割,整个字典包括在一对{}中;键必须是惟一的,值不需要唯一,值可以是任何数据类型;字典...

python:python与java语法的异同之处

1、变量java中定义变量,int a=0;而python中为 a=0;由此可见java要事先申明数据类型,python中无需事先申明数据类型,拿来就可以用,Python 的语法要比Java 更灵活。...

掌握 Python:基本语法

变量和数据类型几乎每个编程任务的核心都是变量和数据类型。变量就像内存中存储位置的标签,可以在其中保存程序可以操作的数据。Python 是动态类型的,这意味着不必显式声明变量的类型。下面快速浏览了如何使...