1.5 Dictionary(字典)

Python中,字典用放在花括号{}中一系列键-值对表示。键和值之间用冒号分隔,键-值对之间用逗号分隔。

在字典中,你想存储多少个键-值对都可以。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。

  1. >>> alien_0 = {'color': 'green', 'point': 5}
  2. >>> print(alien_0)
  3. {'color': 'green', 'point': 5}
  4. >>> alien_0['x_position'] = 0
  5. >>> alien_0['y_position'] = 25
  6. >>> print(alien_0)
  7. {'color': 'green', 'point': 5, 'x_position': 0, 'y_position': 25}

注意,键-值对的排列顺序与添加顺序不同。

Python不关心键-值对的添加顺序,而只关心键和值之间的关联关系。

  1. >>> alien_0 = {} # 创建空字典
  2. >>> alien_0['color'] = 'green'
  3. >>> alien_0['point'] = 5
  4. >>> print(alien_0)
  5. {'color': 'green', 'point': 5}

1.5.1 访问字典中的值

  1. >>> alien_0 = {'color': 'green'}
  2. >>> print(alien_0['color'])
  3. green

1.5.2 修改字典中的值

  1. >>> alien_0 = {'color': 'green'}
  2. >>> alien_0['color']
  3. 'green'
  4. >>> alien_0['color'] = 'yellow'
  5. >>> alien_0['color']
  6. 'yellow'

1.5.3 删除键-值对

  1. >>> alien_0 = {'color': 'green', 'points': 5}
  2. >>> print(alien_0)
  3. {'color': 'green', 'points': 5}
  4. >>> del alien_0['points']
  5. >>> print(alien_0)
  6. {'color': 'green'}

1.5.4 遍历字典

  1. user_0 = {
  2. 'username': 'efermi',
  3. 'first': 'enrico',
  4. 'last': 'fermi',
  5. }
  6. for key, value in user_0.items():
  7. print("\nKey: " + key)
  8. print("Value: " + value)
  9. #
  10. # Key: username
  11. # Value: efermi
  12. #
  13. # Key: first
  14. # Value: enrico
  15. #
  16. # Key: last
  17. # Value: fermi
  18. #
  1. # 遍历字典中的所有键
  2. favorite_languages = {
  3. 'jen': 'python',
  4. 'sarah': 'c',
  5. 'edward': 'ruby',
  6. 'phil': 'python',
  7. }
  8. for name in favorite_languages.keys():
  9. print(name.title())
  10. # Jen
  11. # Sarah
  12. # Edward
  13. # Phil
  1. # 遍历字典中的所有值
  2. favorite_languages = {
  3. 'jen': 'python',
  4. 'sarah': 'c',
  5. 'edward': 'ruby',
  6. 'phil': 'python',
  7. }
  8. for language in favorite_languages.values():
  9. print(language.title())
  10. # Python
  11. # C
  12. # Ruby
  13. # Python
  1. favorite_languages = {
  2. 'jen': 'python',
  3. 'sarah': 'c',
  4. 'edward': 'ruby',
  5. 'phil': 'python',
  6. }
  7. # 通过方法set()来剔除重复项
  8. for language in set(favorite_languages.values()):
  9. print(language.title())
  10. # C
  11. # Ruby
  12. # Python
  1. favorite_languages = {
  2. 'jen': 'python',
  3. 'sarah': 'c',
  4. 'edward': 'ruby',
  5. 'phil': 'python',
  6. }
  7. # 使用in或者not in来判断key是否存在
  8. if 'erin' not in favorite_languages.keys():
  9. print("Erin, please take our poll!")
  10. # Erin, please take our poll!
  1. # 按顺序遍历字典中的所有键
  2. favorite_languages = {
  3. 'jen': 'python',
  4. 'sarah': 'c',
  5. 'edward': 'ruby',
  6. 'phil': 'python',
  7. }
  8. for name in sorted(favorite_languages.keys()):
  9. print(name.title())
  10. # Edward
  11. # Jen
  12. # Phil
  13. # Sarah

1.5.5 嵌套

你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

  1. # 在列表中嵌套字典
  2. alien_0 = {'color': 'green', 'points': 5}
  3. alien_1 = {'color': 'yellow', 'points': 10}
  4. alien_2 = {'color': 'red', 'points': 15}
  5. aliens = [alien_0, alien_1, alien_2]
  6. for alien in aliens:
  7. print(alien)
  8. # {'color': 'green', 'points': 5}
  9. # {'color': 'yellow', 'points': 10}
  10. # {'color': 'red', 'points': 15}
  1. # 在字典中嵌套列表
  2. pizza = {
  3. 'crust': 'thick',
  4. 'toppings': ['mushrooms', 'extra cheese'],
  5. }
  6. print("You ordered a " + pizza['crust'] + "-crust pizza " +
  7. "with the following toppings:")
  8. for topping in pizza['toppings']:
  9. print("\t" + topping)
  10. # You ordered a thick-crust pizza with the following toppings:
  11. # mushrooms
  12. # extra cheese
  1. # 在字典中嵌套字典
  2. users = {
  3. 'aeinstein': {
  4. 'first': 'albert',
  5. 'last': 'einstein',
  6. 'location': 'princeton',
  7. },
  8. 'mcurie': {
  9. 'first': 'marie',
  10. 'last': 'curie',
  11. 'location': 'paris',
  12. },
  13. }
  14. for username, user_info in users.items():
  15. print("\nUsername: " + username)
  16. full_name = user_info['first'] + " " + user_info['last']
  17. location = user_info['location']
  18. print("\tFull name: " + full_name.title())
  19. print("\tLocation: " + location.title())
  20. # Username: aeinstein
  21. # Full name: Albert Einstein
  22. # Location: Princeton
  23. #
  24. # Username: mcurie
  25. # Full name: Marie Curie
  26. # Location: Paris

1.6 Set(集合)

集合是一个无序的不重复元素序列。

可以使用大括号{}或者set()函数创建集合。

注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。

  1. >>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
  2. >>> print(basket)
  3. {'orange', 'apple', 'pear', 'banana'}
  4. >>> 'orange' in basket
  5. True
  6. >>> 'crabgrass' in basket
  7. False

两个集合之间的运算

  1. >>> a = set('abracadabra')
  2. >>> b = set('alacazam')
  3. >>> a
  4. {'a', 'b', 'c', 'd', 'r'}
  5. >>> b
  6. {'l', 'z', 'm', 'a', 'c'}
  7. >>> a - b
  8. {'b', 'd', 'r'}
  9. >>> a | b
  10. {'l', 'z', 'a', 'm', 'b', 'c', 'd', 'r'}
  11. >>> a & b
  12. {'a', 'c'}
  13. >>> a ^ b
  14. {'b', 'l', 'z', 'd', 'm', 'r'}

1.6.1 添加元素

  1. >>> thisset = set(("Google", "Runoob", "Taobao"))
  2. >>> print(thisset)
  3. {'Runoob', 'Google', 'Taobao'}
  4. >>> thisset.add("Facebook")
  5. >>> print(thisset)
  6. {'Runoob', 'Facebook', 'Google', 'Taobao'}

使用update()方法也可以添加元素,而且参数可以是列表、元组、字典等。

  1. >>> thisset = set(("Google", "Runoob", "Taobao"))
  2. >>> thisset.update({1,3})
  3. >>> print(thisset)
  4. {'Runoob', 1, 3, 'Taobao', 'Google'}
  5. >>> thisset.update([1,4],[5,6])
  6. >>> print(thisset)
  7. {'Runoob', 1, 3, 4, 'Taobao', 'Google', 5, 6}

1.6.2 移除元素

  1. >>> thisset = set(("Google", "Runoob", "Taobao"))
  2. >>> thisset.remove("Taobao")
  3. >>> print(thisset)
  4. {'Google', 'Runoob'}
  1. >>> thisset = set(("Google", "Runoob", "Taobao"))
  2. >>> thisset.discard("Facebook") # 不存在不会发生错误
  3. >>> print(thisset)
  4. {'Runoob', 'Google', 'Taobao'}
  1. >>> thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
  2. >>> x = thisset.pop() # 随机删除集合中的一个元素
  3. >>> print(x)
  4. Google

1.6.3 清空集合

  1. >>> thisset = set(("Google", "Runoob", "Taobao"))
  2. >>> thisset.clear()
  3. >>> print(thisset)
  4. set()

1.6.4 计算集合元素个数

  1. >>> thisset = set(("Google", "Runoob", "Taobao"))
  2. >>> len(thisset)
  3. 3

参考资料:

Python数据类型(字典和集合)的更多相关文章

  1. Python中字典和集合

    Python中字典和集合 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元 ...

  2. python初识数据类型(字典、集合、元组、布尔)与运算符

    目录 python数据类型(dict.tuple.set.bool) 字典 集合 元组 布尔值 用户交互与输出 获取用户输入 输出信息 格式化输出 基本运算符 算术运算符 比较运算符 逻辑运算符 赋值 ...

  3. python学习——字典和集合

    一.字典 1)字典介绍 字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字.字符串.元组,这种不可变的结构类型也称之为映射.字典类型是Python中唯一內建的映射类型. 1)字典操作 &qu ...

  4. Python 数据类型--字典类型

    字典 dict 字典是Python的另一种有序的可变数据结构,且可存储任意类型对象. 字典是一种键值对的数据容器,每个键值(key:value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典 ...

  5. 07 Python之字典和集合

    1. 什么是字典 字典是用{}表示,以key:value的形式来保存数据的,其查找效率比较高 坑: 字典存储数据时是用哈希值来存储的,算法不能变(python的) 数据必须是可哈希的(不可变的),字典 ...

  6. 9 python 数据类型—字典

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可 ...

  7. python 数据类型 ----字典

    字典由一对key:value 组成的 python中常用且重量级的数据类型 1. key , keys, values 字典由一对key:value 组成的 python中常用且重量级的数据类型 1. ...

  8. python数据类型:字典dict常用操作

    字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的: Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的. Value:任意数据(int,str,boo ...

  9. Python中字典和集合的用法

    本人开始学习python 希望能够慢慢的记录下去 写下来只是为了害怕自己忘记. python中的字典和其他语言一样 也是key-value的形式  利用空间换时间 可以进行快速的查找 key 是唯一的 ...

  10. Python数据类型-字典

    字典(dict) 字典是key:value形式的一种表达形式,例如在Java中有map,JavaScript中的json,Redis中的hash等等这些形式.字典可以存储任意的对象,也可以是不同的数据 ...

随机推荐

  1. 轮廓(Outline) 实例

    1.在元素周围画线本例演示使用outline属性在元素周围画一条线. <style type="text/css"> p{border:red solid thin;o ...

  2. linux系统最小化安装后的初始化脚本

    作为运维人员,经常会初始化系统,系统在安装过程中基本都会选择最小化安装,这样安装好的系统里会缺少很多环境. 下面分享一个系统安装后的初始化脚本: #!/bin/bash #系统时最小化安装的,这里要安 ...

  3. js怎么将 base64转换成图片

    //获取数组最后一个元素 let hasFiles = files[Object.keys(files).pop()] // 参考上面的图片 let file = hasFiles.url let n ...

  4. 浏览器跨域请求之credentials

    -时间起源- 前段时间,需要弄个简单的网站出来,访问远程的api服务. 我是这么做的.首先是在搭建一个nodejs服务来运行前端页面.在我请求登录的时候,能成功返回相应的成功信息.然后,当我再次请求读 ...

  5. 第三周作业————————word count

    #include <stdio.h> void main() { FILE *fp; , str, word, pu, ch; int g; str = ; word = ; pu = ; ...

  6. Word frequency program ver.1

    先吐槽一下自己 做这个作业的时候完全没有提前考虑好时间 导致要提交前一天晚上通宵写代码 而且还满满的bug TAT 缓一口气 程序还在继续写 先把有点累 想着先把博客写了 PART I 预计时间: 语 ...

  7. Linux学习期中总结

    一.<Linux内核分析>总结 (一)计算机是如何工作的 1.存储程序计算机工作模型 2. X86CPU的寄存器:通用寄存器.段寄存器.标志寄存器等. 3.计算机的汇编指令 (1)movl ...

  8. Git学习笔记 第二章

    文件相关操作 修改readme.txt文件,执行 git status 命令查看当前仓库状态 git status 位于分支 master 尚未暂存以备提交的变更: (使用 "git add ...

  9. python 中的列表(list)

    一.生成一个列表 直接生成 L1 = [1, 2, 3, 4, 5] 列表解析式 >>> L2 = [x for x in range(1, 10, 2)] #从1到10的迭代,步长 ...

  10. GitHub18

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...