zoukankan      html  css  js  c++  java
  • Python字典

    字典是可变的,并且可以存储任意数量的Python对象,包括其他容器类型另一个容器类型。字典包括键对(称为项目)及其相应的值。

    Python字典也被称为关联数组或哈希表。字典的一般语法如下:

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

    可以用下面的方式创建字典:

    第一种:

    dict1 = { 'abc': 456 };
    dict2 = { 'abc': 123, 98.6: 37 };
    # 或者
    dict1 = dict(abc='123', name='blx1')

     

    每个按键都来自它的值用冒号(:),该项目以逗号分隔,整个事情是包含在大括号分隔。没有任何项目一个空的字典是写只有两个大括号,就像这样:{}

    键在一个字典中是唯一的,而值可能不是。字典的值可以是任何类型的,但键必须是不可变的数据类型,例如字符串,数字,或元组。

    访问字典的值:

    要访问字典元素,您可以使用熟悉的方括号一起的关键,获得它的值。下面是一个简单的例子:

    #!/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'};
    
    dict['Age'] = 8; # update existing entry
    dict['School'] = "DPS School"; # 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'};
    
    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, in <module>
        print "dict['Age']: ", dict['Age'];
    TypeError: 'type' object is unsubscriptable
    

    注:del()方法会在后续的章节中讨论。

    字典的键的属性:

    字典值没有限制。它们可以是任意Python对象,无论是标准的对象或用户定义的对象。但是作为键,是不可以这样的。

    要记住字典中的键的两个要点:

    (一)不准一个键对应多个条目。这意味着不能有重复的键。当有重复的键,在分配过程中以最后分配的为准。下面是一个简单的例子:

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

    当执行上面的代码,产生以下结果:

    dict['Name']:  Manni
    

    (二)键的值字必须是不可变的。这意味着可以使用字符串,数字或元组作为字典的键,但像['key']是不允许的。下面是一个简单的例子:

     
     
    #!/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中包括以下字典功能:

    SN方法及描述
    1 cmp(dict1, dict2)
    比较两个字典的元素
    2 len(dict)
    字典的长度。这将等同于在字典中的项数
    3 str(dict)
    产生字典里可打印字符串表示形式
    4 type(variable)
    返回传递变量的类型。如果传递变量是字典,那么它将返回一个字典类型

    Python中包括以下字典方法

    SN 方法及描述
    1 dict.clear()
    删除字典dict中的所有元素
    2 dict.copy()
    返回字典dict的浅表副本
    3 dict.fromkeys()
    创建一个新的字典,设置键为seq 和值为value
    4 dict.get(key, default=None)
    对于键key,返回键,如果不是在字典的值或默认
    5 dict.has_key(key)
    如果在字典dict中存在键key,则返回true,否则返回 false
    6 dict.items()
    返回字典的(键,值)元组对的列表
    7 dict.keys()
    返回字典的键的列表
    8 dict.setdefault(key, default=None)
    类似get(),但会设定dict[key]=default如果key不是已经在于字典中
    9 dict.update(dict2)
    增加字典dict2的键值对到字典中
    10 dict.values()
    返回字典dict的值列表
  • 相关阅读:
    P2216 [HAOI2007]理想的正方形(dp+单调队列优化)
    洛谷P1415 拆分数列(dp)
    2017 ACM-ICPC EC-Final ShangHai 东亚洲大陆-上海
    sql查询50题
    虚拟机安装
    Kick Start 2019 Round A Parcels
    Kick Start 2019 Round B Energy Stones
    【DP 好题】Kick Start 2019 Round C Catch Some
    【图论好题】ABC #142 Task F Pure
    【DP 好题】hihoCoder #1520 古老数字
  • 原文地址:https://www.cnblogs.com/zknublx/p/6178053.html
Copyright © 2011-2022 走看看