您的位置:首页 > 编程语言 > Python开发

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包括以下字典功能

SNFunction with Description
1cmp(dict1, dict2)

比较两字典的元素。
2len(dict)

给出了字典的总长度,这将是等于在字典中的项目数。
3str(dict)

字典产生一个打印的字符串表示形式
4type(variable)

返回传递的变量的类型。如果传递的变量是字典,那么它将返回一个字典类型。
Python包括以下词典的方法

编号方法及描述
1dict.clear()

删除字典字典中的所有元素
2dict.copy()

返回一个字典字典的浅拷贝
2dict.fromkeys()

seq值设置到值从键创建一个新的字典。
3dict.get(key, default=None)

For key key, returns value or default if key not in dictionary
4dict.has_key(key)

Returns true if key in dictionary dict, false otherwise
5dict.items()

Returns a list of dict's (key, value) tuple pairs
6dict.keys()

Returns list of dictionary dict's keys
7dict.setdefault(key, default=None)

类似的get(),但会设置的dict[key] =默认情况下,如果键是不是已经在的key.
8dict.update(dict2)

Adds dictionary dict2's key-values pairs to dict
9dict.values()

Returns list of dictionary dict2's values
A dictionary is mutable and is another container type that can store any number of Python objects, including other container types. Dictionaries consist of pairs (called items) of keys and their corresponding 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 functions
SNFunction with Description
1cmp(dict1, dict2)

Compares elements of both dict.
2len(dict)

Gives the total length of the dictionary. This would be equal to the number of items in the dictionary.
3str(dict)

Produces a printable string representation of a dictionary
4type(variable)

Returns the type of the passed variable. If passed variable is dictionary then it would return a dictionary type.
Python includes following dictionary methods

SNMethods with Description
1dict.clear()

Removes all elements of dictionary dict
2dict.copy()

Returns a shallow copy of dictionary dict
3dict.fromkeys()

Create a new dictionary with keys from seq and values set to value.
4dict.get(key, default=None)

For key key, returns value or default if key not in dictionary
5dict.has_key(key)

Returns true if key in dictionary dict, false otherwise
6dict.items()

Returns a list of dict's (key, value) tuple pairs
7dict.keys()

Returns list of dictionary dict's keys
8dict.setdefault(key, default=None)

Similar to get(), but will set dict[key]=default if key is not already in dict
9dict.update(dict2)

Adds dictionary dict2's key-values pairs to dict
10dict.values()

Returns list of dictionary dict's values
http://www.tutorialspoint.com/python/python_dictionary.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: