字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

  1. d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

一个简单的字典实例:

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

也可如此创建字典:

  1. dict1 = { 'abc': 456 };
  2. dict2 = { 'abc': 123, 98.6: 37 };
  3.  
  4. 访问字典里面的值:
    把相应的键放入熟悉的方括弧,如下实例:
  1. dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
  2.  
  3. print "dict['Name']: ", dict['Name'];
  4. print "dict['Age']: ", dict['Age'];

以上实例输出结果:

  1. dict['Name']: Zara
  2. dict['Age']: 7
    还可以用方法get(),该方法有一个内建的安全机制用以处理不存在的键获取值的情况。如果键不存在,该方法就会返回一个默认值,而这个默认值由你来定。
  3.  
  4. dict.get('Address','Address is not in dict')

如果用字典里没有的键访问数据,会输出错误如下:

  1.  
  1. #!/usr/bin/python
  2.  
  3. dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
  4.  
  5. print "dict['Alice']: ", dict['Alice'];

以上实例输出结果:

  1. dict['Zara']:
  2. Traceback (most recent call last):
  3. File "test.py", line 4, in <module>
  4. print "dict['Alice']: ", dict['Alice'];
  5. KeyError: 'Alice'
  1.  

修改字典

  1.  

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

  1.  
  1. dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
  2.  
  3. dict['Age'] = 8; # update existing entry
  4. dict['School'] = "DPS School"; # Add new entry
  5.  
  6. print "dict['Age']: ", dict['Age'];
  7. print "dict['School']: ", dict['School'];
  1. 以上实例输出结果:
  1. dict['Age']: 8
  2. dict['School']: DPS School

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显示删除一个字典用del命令,如下实例:

  1. # -*- coding: UTF-8 -*-
  2.  
  3. dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
  4.  
  5. del dict['Name']; # 删除键是'Name'的条目
  6. dict.clear(); # 清空词典所有条目
  7. del dict ; # 删除词典
  8.  
  9. print "dict['Age']: ", dict['Age'];
  10. print "dict['School']: ", dict['School'];

但这会引发一个异常,因为用del后字典不再存在:

  1. dict['Age']:
  2. Traceback (most recent call last):
  3. File "test.py", line 8, in <module>
  4. print "dict['Age']: ", dict['Age'];
  5. TypeError: 'type' object is unsubscriptable
  1.  

字典键的特性

字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。

2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行。

  1.  

Python 字典(Dictionary)的更多相关文章

  1. Python 字典(Dictionary)操作详解

    Python 字典(Dictionary)的详细操作方法. Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字 ...

  2. Python 字典(Dictionary) get()方法

    描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 ...

  3. Python 字典(Dictionary) setdefault()方法

    描述 Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法: ...

  4. Python 字典(Dictionary) has_key()方法

    描述 Python 字典(Dictionary) has_key() 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false. 语法 has_key()方法语法:dic ...

  5. Python 字典(Dictionary) values()方法

    描述 Python 字典(Dictionary) values() 函数以列表返回字典中的所有值. 语法 values()方法语法: dict.values() 参数 NA. 返回值 返回字典中的所有 ...

  6. Python 字典(Dictionary) keys()方法

    Python 字典(Dictionary) keys() 函数以列表返回一个字典所有的键. 语法 keys()方法语法: dict.keys() 参数 NA. 返回值 返回一个字典所有的键. 实例 以 ...

  7. Python字典(Dictionary)update()方法

    原文连接:https://www.runoob.com/python/att-dictionary-update.html Python字典(dictionary)update()函数把字典dict2 ...

  8. Python 字典(Dictionary) items()方法

    描述 Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组.高佣联盟 www.cgewang.com 语法 items()方法语法: dict.it ...

  9. Python 字典(Dictionary) copy()方法

    描述 Python 字典(Dictionary) copy() 函数返回一个字典的浅复制.高佣联盟 www.cgewang.com 语法 copy()方法语法: dict.copy() 参数 NA. ...

  10. Python 字典(Dictionary) clear()方法

    Python 字典(Dictionary) clear()方法 描述 Python 字典(Dictionary) clear() 函数用于删除字典内所有元素.高佣联盟 www.cgewang.com ...

随机推荐

  1. uiwebview加载中文URL

    uiwebview加载中文URL _paperGamePath = [_paperGamePath stringByAddingPercentEscapesUsingEncoding:NSUTF8St ...

  2. display:inline-block; 到底是个啥玩意?

    display:inline; 内联元素,简单来说就是在同一行显示.display:block; 块级元素,简单来说就是就是有换行,会换到第二行.display:inline-block; 就是在同一 ...

  3. 如果类的属性是copy的NSString类型 用set方法拦截时

    @property (nonatomic, copy) NSString *badgeValue; - (void)setBadgeValue:(NSString *)badgeValue { _ba ...

  4. SQL Sever 身份验证 sa用户设置

    1.用windows身份验证登陆数据库找到sa用户 2.鼠标右键sa->属性->常规,设置密码. 3.选择状态->登陆选择已启用 4.选中当前数据库 鼠标右键->属性 5.选择 ...

  5. SQL 2008 数据库只读 修改

        先对数据库分离 数据库鼠标右键->任务->分离   将UsersDB.mdf UsersDB_log.LDF文件 属性->安全->编辑   两个文件的都要更改权限   ...

  6. 记录把方法添加到 JavaScript 对象不明白的地方

    <!DOCTYPE html> <html> <body> <script> function person(firstname,lastname,ag ...

  7. [转]Java中的多线程你只要看这一篇就够了

    如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其 ...

  8. 变形--缩放 scale()

    缩放 scale()函数 让元素根据中心原点对对象进行缩放. 缩放 scale 具有三种情况: 1. scale(X,Y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放) 例如: div: ...

  9. scala2.10.x case classes cannot have more than 22 parameters

    问题 这个错误出现在case class参数超出22个的时候. case classes cannot have more than 22 parameters 在scala 2.11.x版本以下时c ...

  10. paper 68 :MATLAB中取整函数(fix, floor, ceil, round)的使用

    MATLAB取整函数 1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans =      3    -3 (2)floor(x):不超过x 的最大整数.(高 ...