2022年 11月 4日

python中映射类型有哪些_Python的数据类型——映射(字典)

字典

前面曾经说过的访问模型:直接存取,序列,映射。字典就是一种映射模式(mapping

type)。

一个字典对象是可变的,他是一个容器类型,能存

储任意个Python对象,也包括其他容器类型。字典类型和序列类型的容器类的区别是存储和访问数据的方式不同。序列只用数字类型的键(从序列的开始按数

字顺序索引)。而字典这种映射类型可以用其他类型做键,一般最常用的是字符串做键(keys)。

创建字典:一个字典条目的语法格式是 键:值,多条字典条目包含在{}内。

>>> dict1 = {‘name’:’earth’,’port’:80}

>>> dict1

{‘name’: ‘earth’, ‘port’: 80}

>>>

也可以先建一个空的字典,然后再往里面加元素:

>>> d = {}

>>> d[‘name’] = ‘Gumby’

>>> d[‘age’] = 42

>>> d

{‘age’: 42, ‘name’: ‘Gumby’}

>>>

也可以用dict()创建

>>> fdict = dict(([‘x’,1],[‘y’,2]))

>>> fdict

{‘y’: 2, ‘x’: 1}

>>>

下面看如何访问字典中的元素:

>>> dict2 = {‘name’:’earth’,’port’:80}

>>> for key in dict2.keys():

print ‘key=%s,value=%s’ %(key,dict2[key])

key=name,value=earth

key=port,value=80

>>> for key in dict2:

print ‘key=%s,value=%s’ %(key,dict2[key])

key=name,value=earth

key=port,value=80

>>> dict2[‘name’]

‘earth’

>>> print ‘host %s is running on port %d’ %

(dict2[‘name’],dict2[‘port’])

host earth is running on port 80

>>>

如何更新字典:

添加一个新数据项(即一个键-值对)

>>> dict2 = {‘name’:’earth’,’port’:80}

>>> dict2

{‘name’: ‘earth’, ‘port’: 80}

>>> dict2[‘name’] = ‘venus’

>>> dict2[‘port’] = 6969

>>> dict2[‘IP’] = ‘10.1.14.84’

>>> dict2

{‘IP’: ‘10.1.14.84’, ‘name’: ‘venus’, ‘port’: 6969}

>>>

实现了更新原有的和添加新的键-值对。

删除字典元素和字典:

>>> dict2

{‘IP’: ‘10.1.14.84’, ‘name’: ‘venus’, ‘port’: 6969}

>>> del dict2[‘name’]

>>> dict2

{‘IP’: ‘10.1.14.84’, ‘port’: 6969}

>>> del dict2

>>> dict2

Traceback (most recent call last):

File “”, line 1, in

dict2

NameError: name ‘dict2’ is not defined

>>>

如果想只清空字典,而不是销毁字典,可用clear()

>>>dict2.clear()

>>>dict2

{}

>>>

另外字典还有好多内置的函数:

>>> dir(dict)

[‘__class__’, ‘__cmp__’, ‘__contains__’, ‘__delattr__’,

‘__delitem__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’,

‘__getattribute__’, ‘__getitem__’, ‘__gt__’, ‘__hash__’,

‘__init__’, ‘__iter__’, ‘__le__’, ‘__len__’, ‘__lt__’, ‘__ne__’,

‘__new__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’,

‘__setattr__’, ‘__setitem__’, ‘__sizeof__’, ‘__str__’,

‘__subclasshook__’, ‘clear’, ‘copy’, ‘fromkeys’, ‘get’, ‘has_key’,

‘items’, ‘iteritems’, ‘iterkeys’, ‘itervalues’, ‘keys’, ‘pop’,

‘popitem’, ‘setdefault’, ‘update’, ‘values’]

>>>