Python dictionary 字典
2013-03-25 09:45
274 查看
Python 字典(Dict)
Python字典是可变的,是另一种容器类型,可以存储任何Python对象,包括其他容器类型的数量。字典是可变的,是另一种容器类型,可以存储任何Python对象,包括其他容器类型的数量。
字典包括对(称为项目)键及其对应值。
Python字典也被称为关联数组或哈希表。
字典的一般语法如下:
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, inprint "dict['Alice']: ", dict['Alice']; KeyError: 'Alice'
更新字典:
你可以更新一本字典,通过添加一个新条目或项目(即一个键 - 值对),修改现有的条目,或删除现有条目,如下所示:例如:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; del dict['Name']; # remove entry with key 'Name' dict.clear(); # remove all entries in dict del dict ; # delete entire dictionary print "dict['Age']: ", dict['Age']; print "dict['School']: ", dict['School'];
这将输出以下结果:
这将产生以下结果。注意提出一个例外,这是因为 del dict 后,不存在任何更多:
dict['Age']: Traceback (most recent call last): File "test.py", line 8, inprint "dict['Age']: ", dict['Age']; TypeError: 'type' object is unsubscriptable
注:del()方法是在后续章节中讨论。
字典键的属性:
字典中的值没有限制。他们可以任意Python对象,无论是标准的对象或用户定义的对象。然而,同样是不正确的钥匙。有两个重要的点,要记住字典键:
(a)超过一键条目不允许的。这意味着没有重复的关键是允许的。在分配过程中遇到的重复键时,赢得最后的任务。
例如:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}; print "dict['Name']: ", dict['Name'];
这将输出以下结果:
dict['Name']: Manni
(b)键必须是不可改变的。这意味着可以使用字典的键,但如['关键']什么是不允许的字符串,数字,或元组。
例如:
#!/usr/bin/python dict = {['Name']: 'Zara', 'Age': 7}; print "dict['Name']: ", dict['Name'];
这将产生以下结果。注意提高一个例外:
Traceback (most recent call last): File "test.py", line 3, indict = {['Name']: 'Zara', 'Age': 7}; TypeError: list objects are unhashable
内置字典功能与方法:
Python包括以下字典功能SN | Function with Description |
---|---|
1 | cmp(dict1, dict2) 比较两字典的元素。 |
2 | len(dict) 给出了字典的总长度,这将是等于在字典中的项目数。 |
3 | str(dict) 字典产生一个打印的字符串表示形式 |
4 | type(variable) 返回传递的变量的类型。如果传递的变量是字典,那么它将返回一个字典类型。 |
编号 | 方法及描述 |
---|---|
1 | dict.clear() 删除字典字典中的所有元素 |
2 | dict.copy() 返回一个字典字典的浅拷贝 |
2 | dict.fromkeys() seq值设置到值从键创建一个新的字典。 |
3 | dict.get(key, default=None) For key key, returns value or default if key not in dictionary |
4 | dict.has_key(key) Returns true if key in dictionary dict, false otherwise |
5 | dict.items() Returns a list of dict's (key, value) tuple pairs |
6 | dict.keys() Returns list of dictionary dict's keys |
7 | dict.setdefault(key, default=None) 类似的get(),但会设置的dict[key] =默认情况下,如果键是不是已经在的key. |
8 | dict.update(dict2) Adds dictionary dict2's key-values pairs to dict |
9 | dict.values() Returns list of dictionary dict2's values |
Python dictionaries are also known as associative arrays or hash tables. The general syntax of a dictionary is as follows:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
You can create dictionary in the following way as well:
dict1 = { 'abc': 456 }; dict2 = { 'abc': 123, 98.6: 37 };
Each key is separated from its value by a colon (:), the items are separated by commas, and the whole thing is enclosed in curly braces. An empty dictionary without any items is written with just two curly braces, like this: {}.
Keys are unique within a dictionary while values may not be. The values of a dictionary can be of any type, but the keys must be of an immutable data type such as strings, numbers, or tuples.
Accessing Values in Dictionary:
To access dictionary elements, you can use the familiar square brackets along with the key to obtain its value. Following is a simple example:#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; print "dict['Name']: ", dict['Name']; print "dict['Age']: ", dict['Age'];
When the above code is executed, it produces following result:
dict['Name']: Zara dict['Age']: 7
If we attempt to access a data item with a key which is not part of the dictionary, we get an error as follows:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; print "dict['Alice']: ", dict['Alice'];
When the above code is executed, it produces following result:
dict['Zara']: Traceback (most recent call last): File "test.py", line 4, in <module> print "dict['Alice']: ", dict['Alice']; KeyError: 'Alice'
Updating Dictionary:
You can update a dictionary by adding a new entry or item (i.e., a key-value pair), modifying an existing entry, or deleting an existing entry as shown below in the simple example:#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; dict['Age'] = 8; # update existing entry dict['School'] = "DPS School"; # Add new entry print "dict['Age']: ", dict['Age']; print "dict['School']: ", dict['School'];
When the above code is executed, it produces following result:
dict['Age']: 8 dict['School']: DPS School
Delete Dictionary Elements:
You can either remove individual dictionary elements or clear the entire contents of a dictionary. You can also delete entire dictionary in a single operation.To explicitly remove an entire dictionary, just use the del statement. Following is a simple example:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; del dict['Name']; # remove entry with key 'Name' dict.clear(); # remove all entries in dict del dict ; # delete entire dictionary print "dict['Age']: ", dict['Age']; print "dict['School']: ", dict['School'];
This will produce following result. Note an exception raised, this is because after del dict dictionary does not exist any more:
dict['Age']: Traceback (most recent call last): File "test.py", line 8, in <module> print "dict['Age']: ", dict['Age']; TypeError: 'type' object is unsubscriptable
Note: del() method is discussed in subsequent section.
Properties of Dictionary Keys:
Dictionary values have no restrictions. They can be any arbitrary Python object, either standard objects or user-defined objects. However, same is not true for the keys.There are two important points to remember about dictionary keys:
(a) More than one entry per key not allowed. Which means no duplicate key is allowed. When duplicate keys encountered during assignment, the last assignment wins. Following is a simple example:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}; print "dict['Name']: ", dict['Name'];
When the above code is executed, it produces following result:
dict['Name']: Manni
(b) Keys must be immutable. Which means you can use strings, numbers, or tuples as dictionary keys but something like ['key'] is not allowed. Following is a simple example:
#!/usr/bin/python dict = {['Name']: 'Zara', 'Age': 7}; print "dict['Name']: ", dict['Name'];
When the above code is executed, it produces following result:
Traceback (most recent call last): File "test.py", line 3, in <module> dict = {['Name']: 'Zara', 'Age': 7}; TypeError: list objects are unhashable
Built-in Dictionary Functions & Methods:
Python includes following dictionary functionsSN | Function with Description |
---|---|
1 | cmp(dict1, dict2) Compares elements of both dict. |
2 | len(dict) Gives the total length of the dictionary. This would be equal to the number of items in the dictionary. |
3 | str(dict) Produces a printable string representation of a dictionary |
4 | type(variable) Returns the type of the passed variable. If passed variable is dictionary then it would return a dictionary type. |
SN | Methods with Description |
---|---|
1 | dict.clear() Removes all elements of dictionary dict |
2 | dict.copy() Returns a shallow copy of dictionary dict |
3 | dict.fromkeys() Create a new dictionary with keys from seq and values set to value. |
4 | dict.get(key, default=None) For key key, returns value or default if key not in dictionary |
5 | dict.has_key(key) Returns true if key in dictionary dict, false otherwise |
6 | dict.items() Returns a list of dict's (key, value) tuple pairs |
7 | dict.keys() Returns list of dictionary dict's keys |
8 | dict.setdefault(key, default=None) Similar to get(), but will set dict[key]=default if key is not already in dict |
9 | dict.update(dict2) Adds dictionary dict2's key-values pairs to dict |
10 | dict.values() Returns list of dictionary dict's values |
相关文章推荐
- python3 第十四章 - 数据类型之Dictionary(字典)
- Python 字典(Dictionary)
- Python 字典(Dictionary) get()方法
- python字典遍历删除 - dictionary changed size during iteration
- Python学习心得(二) 字典Dictionary
- Python基础-dictionary 字典
- Python 字典(Dictionary)
- Python学习笔记(十八)----Python 字典(Dictionary)
- python字典遍历删除 - dictionary changed size during iteration
- dictionary字典的初步介绍(一) python
- Python中的字典(Dictionary)
- Python 字典(Dictionary)
- python学习(1)-字典 (Dictionary)
- Python 字典(Dictionary) setdefault()方法
- Python 字典(Dictionary) update()方法
- 1006- Python 字典(Dictionary) items()方法
- Python 字典(Dictionary) get()方法
- Python 字典(Dictionary)
- Python 字典(Dictionary)
- Python 字典(Dictionary) get()方法