Python 字典(Dictionary)

简介:

字典是另一种可变容器模型,且可存储任意类型对象,如其他容器模型。


字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此创建字典:

dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

每个键与值用冒号隔开(:),每对用逗号分割,整体放在花括号中({})。


键必须独一无二,但值则不必


值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。



访问字典里的值

把相应的键放入熟悉的方括弧,如下实例:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
print "dict['Name']: ", dict['Name'];

print "dict['Age']: ", dict['Age'];

以上实例输出结果:

dict['Name']:  Zara
dict['Age']:  7

如果用字典里没有的键访问数据,会输出错误如下:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
print "dict['Alice']: ", dict['Alice'];

以上实例输出结果:

dict['Zara']:
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'



修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
# update existing entry 更新

 # Add new entry 增加
 
 
print "dict['Age']: ", dict['Age'];

print "dict['School']: ", dict['School'];

以上实例输出结果:

dict['Age']:  8

dict['School']:  DPS School



删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。


示删除一个字典用del命令,如下实例:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
 # 删除键是'Name'的条目

    # 清空词典所有条目

      # 删除词典
 
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];

但这会引发一个异常,因为用del后字典不再存在:

dict['Age']:
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

注:del()方法后面也会讨论。



删除字典元素

字典键的特性

字典可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但不行。

两个重要的点需要记住:


1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:


#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};
 
print "dict['Name']: ", dict['Name'];

以上实例输出结果:

dict['Name']:  Manni

2)键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行,如下实例:因为列表可变

#!/usr/bin/python
 
dict = {['Name']: 'Zara', 'Age': 7};
 
print "dict['Name']: ", dict['Name'];

以上实例输出结果:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable



字典内置函数&方法

Python字典包含了以下内置函数:

序号 函数及描述
1

cmp(dict1, dict2)

 

比较两个字典元素。
2

len(dict)

 

计算字典元素个数,即键的总数。
3

str(dict)

 

输出字典可打印的字符串表示。
4

type(variable)

 

返回输入的变量类型,如果变量是字典就返回字典类型。

Python字典包含了以下内置函数:

序号 函数及描述
1

radiansdict.clear()

 

删除字典内所有元素
2

radiansdict.copy()

 

返回一个字典的浅复制
3

radiansdict.fromkeys()

 

创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4

radiansdict.get(key, default=None)

 

返回指定键的值,如果值不在字典中返回default值
5

radiansdict.has_key(key)

 

如果键在字典dict里返回true,否则返回false
6

radiansdict.items()

 

以列表返回可遍历的(键, 值) 元组数组
7

radiansdict.keys()

 

以列表返回一个字典所有的键
8

radiansdict.setdefault(key, default=None)

 

和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
9

radiansdict.update(dict2)

 

把字典dict2的键/值对更新到dict里
10

radiansdict.values()

 

以列表返回字典中的所有值










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1547879,如需转载请自行联系原作者
目录
相关文章
|
17天前
|
存储 开发者 Python
Python中的collections模块与UserDict:用户自定义字典详解
【4月更文挑战第2天】在Python中,`collections.UserDict`是用于创建自定义字典行为的基类,它提供了一个可扩展的接口。通过继承`UserDict`,可以轻松添加或修改字典功能,如在`__init__`和`__setitem__`等方法中插入自定义逻辑。使用`UserDict`有助于保持代码可读性和可维护性,而不是直接继承内置的`dict`。例如,可以创建一个`LoggingDict`类,在设置键值对时记录操作。这样,开发者可以根据具体需求定制字典行为,同时保持对字典内部管理的抽象。
|
1月前
|
存储 索引 Python
python字典:怎么取出key对应的值
python字典:怎么取出key对应的值
35 0
C4.
|
1月前
|
存储 Python
Python的字典
Python的字典
C4.
16 0
|
1月前
|
存储 数据库 索引
Python新手常见问题一:列表、元组、集合、字典区别是什么?
本文针对Python编程新手常遇到的问题,详细阐述了列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary)这四种数据结构的核心区别。列表是一种有序且可变的数据序列,允许元素重复;元组同样有序但不可变,其内容一旦创建就不能修改;集合是无序、不重复的元素集,强调唯一性,主要用于数学意义上的集合操作;而字典则是键值对的映射容器,其中键必须唯一,而值可以任意,它提供了一种通过键查找对应值的有效方式。通过对这些基本概念和特性的对比讲解,旨在帮助初学者更好地理解并运用这些数据类型来解决实际编程问题。
37 1
|
8天前
|
安全 Python
python字典的内置方法
Python字典主要方法包括:`keys()`(返回所有键)、`values()`(返回所有值)、`items()`(返回所有键值对)、`get()`(安全取值,键不存在时返回默认值)、`setdefault()`(设置默认值)、`update()`(合并字典)、`pop()`(删除并返回值)、`clear()`(清空字典)、`copy()`(浅拷贝)、`fromkeys()`(新建字典并设置默认值)、`popitem()`(随机删除键值对)。
8 0
|
17天前
|
存储 Java 程序员
【Python】6. 基础语法(4) -- 列表+元组+字典篇
【Python】6. 基础语法(4) -- 列表+元组+字典篇
40 1
|
17天前
|
存储 Python
python基础篇: 详解 Python 字典类型内置方法
python基础篇: 详解 Python 字典类型内置方法
26 1
|
22天前
|
C语言 Python
Python字典推导式:高效构建字典的利器
在Python编程中,字典推导式(Dictionary Comprehension)是一种强大的构造工具,它允许我们以简洁的方式从现有可迭代对象创建新的字典。通过字典推导式,我们可以轻松地对数据进行转换、过滤或重新组织,以符合特定的需求。本文将深入探讨字典推导式的概念、语法和应用场景,帮助读者更好地掌握这一高效的编程工具。
|
28天前
|
Python
深入解析Python中的字典推导式
深入解析Python中的字典推导式
|
1月前
|
存储 Java Python
助你更好的理解 Python 字典
助你更好的理解 Python 字典