《Python参考手册(第4版•修订版)》——1.9 字典

简介:

本节书摘来自异步社区《Python参考手册(第4版•修订版)》一书中的第1章,第1.9节,作者David M. Beazley,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.9 字典

字典就是一个关联数组或散列表,其中包含通过键(key)索引的对象。在大括号({ })中放入值即可创建字典,如下所示:

stock = { 
        "name"   : "GOOG",
        "shares" : 100,
        "price"  : 490.10
    }

要访问字典成员,可使用键索引运算符,如下所示:

name  = stock["name"]
value = stock["shares"] * shares["price"]

插入或修改对象的方法是:

stock["shares"] = 75
stock["date"]   = "June 7, 2007"

尽管字符串是最常用的键类型,还可以使用其他的Python对象,包括数值和元组。但包括列表和字典在内的一些对象不能用作键,因为它们的内容可以发生变化。

如前所述,在定义一个可包含多个命名字段的对象时,字典是一种很有用的方式。然而,字典也可用作快速查找无序数据的一个容器。例如,下面是一个股票价格的字典:

prices = { 
    "GOOG" : 490.10,
    "AAPL" : 123.50,
    "IBM"  : 91.50,
    "MSFT" : 52.13
}

创建一个空字典有两种方式:

prices = {}     # 一个空字典
prices = dict()  # 一个空字典

使用in运算符可以检验某个内容项是不是字典成员,如下所示:

if "SCOX" in prices:
    p = prices["SCOX"]
else:
    p = 0.0

这个特殊的步骤序列还可以写成更简洁的形式,如下所示:

p = prices.get("SCOX",0.0)

要获得一个字典关键字的列表,将字典转换为列表即可:

syms = list(prices) # syms = ["AAPL", "MSFT", "IBM", "GOOG"]

使用del语句可以删除字典的元素:

del prices["MSFT"]

字典可能是Python解释器中最完善的数据类型。因此,如果只是要在程序中存储和处理数据,使用字典比使用一些自定义数据结构要好得多。

相关文章
|
3天前
|
Python
【Python操作基础】——字典,迭代器和生成器
【Python操作基础】——字典,迭代器和生成器
|
3天前
|
索引 Python
Python中的列表、元组和字典各具特色
【5月更文挑战第11天】Python中的列表、元组和字典各具特色:列表是可变的,元组不可变,字典亦可变;列表和元组有序,字典无序(但在Python 3.7+保持插入顺序);元素类型上,列表和元组元素任意,字典需键不可变;列表用方括号[],元组用圆括号(),字典用大括号{}表示。列表不适合作字典键,元组可以。选择数据结构应依据实际需求。
10 2
|
5天前
|
开发者 Python
【Python 基础】递推式构造字典(dictionary comprehension)
【5月更文挑战第8天】【Python 基础】递推式构造字典(dictionary comprehension)
|
16天前
|
Python
Python中字典和集合(二)
Python中字典和集合(二)
|
16天前
|
存储 算法 索引
Python中字典和集合(一)
Python中字典和集合(一)
|
16天前
|
存储 缓存 Python
【Python21天学习挑战赛】字典 && 小数据池
【Python21天学习挑战赛】字典 && 小数据池
|
18天前
|
存储 JSON 数据处理
|
18天前
|
存储 缓存 人工智能
bidict,一个超酷的 Python 双向字典库!
bidict,一个超酷的 Python 双向字典库!
19 1
|
18天前
|
存储 人工智能 索引
Python中的嵌套字典访问与操作详解
Python中的嵌套字典访问与操作详解
24 1
|
19天前
|
JSON 数据可视化 定位技术
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
19 0