美文网首页Python学习手册
Python数据类型-字典

Python数据类型-字典

作者: 复苏的兵马俑 | 来源:发表于2020-01-28 20:12 被阅读0次

6、字典(Dict)

字典同样是一种容纳多个元素的容器,在很多方面和列表类似,但是,不同的一点是,字典不是以位置来索引的。
字典包含多个元素,每个元素以,分隔开,每个元素包含两部分:键(Key)值(Value)键(Key)值(Value)之间用冒号:分隔开,所有元素用大括号{}扩起来。
字典元素的索引正是依靠元素的键(Key)实现的。
字典元素的键(Key)必须是唯一的,值则不需要唯一。
值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。

dic01 = {key1 : value1, key2 : value2 }
6.1、创建字典
# example:
dict01 = {'Kevin': 100, 'Loki': 98, 'Jose': 92, 'Vicky': 95}
dict02 = {89: 'Test'}
print('dict01 = {}'.format(dict01))
print('dict02 = {}'.format(dict02))
# 运行结果:
dict01 = {'Kevin': 100, 'Loki': 98, 'Jose': 92, 'Vicky': 95}
dict02 = {89: 'Test'}
6.2、读取字典

字典的读取是通过键来实现的。

# example:
dict01 = {'Kevin': 100, 'Loki': 98, 'Jose': 92, 'Vicky': 95}
dict02 = {89: 'Test'}
print("dict01['Jose'] = {}".format(dict01['Jose']))
print("dict02[89] = {}".format(dict02[89]))
# 运行结果:
dict01['Jose'] = 92
dict02[89] = Test
6.3、更新字典

字典是一种可变的数据类型,字典的修改包括对字典已有的值的重新复制以及增加一组键和值。

# example:
dict01 = {'Kevin': 100, 'Loki': 98, 'Jose': 92, 'Vicky': 95}
dict02 = {89: 'Test'}
dict01['Jose'] = 100
dict02[89] = 'Temp'
print('dict01 = {}'.format(dict01))
print('dict02 = {}'.format(dict02))
# 运行结果:
dict01 = {'Kevin': 100, 'Loki': 98, 'Jose': 100, 'Vicky': 95}
dict02 = {89: 'Temp'}
6.4、字典的删除

字典的删除包括对已有值的删除del和对整个字典的清空clear

# example:
dict01 = {'Kevin': 100, 'Loki': 98, 'Jose': 92, 'Vicky': 95}
dict02 = {89: 'Test'}
del dict01['Vicky']
dict02.clear()
print('dict01 = {}'.format(dict01))
print('dict02 = {}'.format(dict02))
# 运行结果:
dict01 = {'Kevin': 100, 'Loki': 98, 'Jose': 92}
dict02 = {}

需要注意的是,对整个字典执行del命令之后,系统将整个字典从内存中删除,删除后再执行print命令,系统会报错,提示未定义。
clear命令只是清空了这个字典中的所有键及值,但是字典本身还存在于系统内。

6.5、字典的函数

a、len():

def len(*args, **kwargs): # real signature unknown
    """ Return the number of items in a container. """
    pass
def len(*args, **kwargs): # real signature unknown
    """ 返回字典中元素的个数。 """
    pass
# example:
dict01 = {'Kevin': 100, 'Loki': 98, 'Jose': 92, 'Vicky': 95}
print('len(dict01) = {}'.format(len(dict01)))
# 运行结果:
len(dict01) = 4

b、str():

def __init__(self, value='', encoding=None, errors='strict'):  # known special case of str.__init__
    """
    str(object='') -> str
    str(bytes_or_buffer[, encoding[, errors]]) -> str
    Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler.
    Otherwise, returns the result of object.__str__() (if defined) or repr(object).
    encoding defaults to sys.getdefaultencoding().
    errors defaults to 'strict'.
    # (copied from class doc)
    """
    pass
def __init__(self, value='', encoding=None, errors='strict'):  # known special case of str.__init__
    """
    str(object='') -> str
    str(bytes_or_buffer[, encoding[, errors]]) -> str
    从给定对象创建一个新的字符串对象。如果指定了编码或错误,则对象必须公开一个数据缓冲区,该缓冲区将使用给定的编码和错误处理程序进行解码。
    否则,返回object._ str__()(如果定义了)或repr(对象)的结果。
    编码默认为sys.getdefaultencoding()。
    错误默认为“strict”。
    # (copied from class doc)
    """
    pass
# example:
dict01 = {'Kevin': 100, 'Loki': 98, 'Jose': 92, 'Vicky': 95}
str01 = str(dict01)
print('str01 = {}'.format(str01))
# 运行结果:
str01 = {'Kevin': 100, 'Loki': 98, 'Jose': 92, 'Vicky': 95}

c、type():

def __init__(cls, what, bases=None, dict=None):  # known special case of type.__init__
    """
    type(object_or_name, bases, dict)
    type(object) -> the object's type
    type(name, bases, dict) -> a new type
    # (copied from class doc)
    """
    pass
# example:
dict01 = {'Kevin': 100, 'Loki': 98, 'Jose': 92, 'Vicky': 95}
print('type(dict01):{}'.format(type(dict01)))
# 运行结果:
type(dict01):<class 'dict'>

相关文章

网友评论

    本文标题:Python数据类型-字典

    本文链接:https://www.haomeiwen.com/subject/zvgethtx.html