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

liftword5个月前 (01-13)技术文章49

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

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

字典长啥样?

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

字典不维持插入顺序

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

字典的取值

字典用中括号取值

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

字典查找速度很快

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

字典的赋值

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

字典迭代

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

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 是字典提供的内置方法,该方法返回一个键值对列表。

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

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

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

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

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

zhf

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

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

相关文章

什么是Python 之 ? 22 dict字典键值对

Python Dictionaries 字典,其实也叫键值对俗话说 男女搭配干活不累,九台怎么男女形成配对呢?key是不能重复的{ "key1": value1, "key2&...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json 简介:Json,全名 JavaScript Object Notation,JSON(JavaScript Object Notation(记号、标记))是一种轻量级的数据交换格式。它基于J...

合并 Python 中的字典3个方法的区别与联系

1、在 Python 中使用 | 操作符合并字典首先,让我们讨论合并字典的最简单方法,这通常已经足够满足你的需求。以下是两个字典:>>> context = {"langua...

python计数器(Counter)

python计数器(Counter)Counter是collections模块的Counter类。collections中一共有9种容器,其中counter、defaultdict、deque、nam...

Python 中的字典get()方法和 setdefault()

Python 字典是强大的数据结构,允许使用键值对有效地存储和检索数据。字典提供的最有用的方法之一是 get() 方法。此方法有助于正常处理缺失的 key,避免常见的 KeyError 异常。此外,s...

Python - 爬虫之Selenium

一、Selenium 的介绍Selenium 是一个 Web 自动化测试工具,最初是为网站自动化测试而开发,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括 PhantomJS 这些...