字典:key–value

字典不是序列类型,它是映射类型
(1)创建字典
①
>>> dict = {}  #空字典
>>> dict
{}
②直接按照字典的格式定义
>>> dict1 = {'Adidas':'impossible is nothing','Nike':'just do it'}
>>> dict1
>{'Adidas': 'impossible is nothing', 'Nike': 'just do it'}
③用赋值:key=value,再dict()
>>> dict2=dict(Nick='just do it',Adidas='nothing is impossible')
>>> dict2
{'Nick': 'just do it', 'Adidas': 'nothing is impossible'}
④用map构成的元组,再dict()
>>> d3 = dict((('f',1),('A',2)))  #用map构成的元祖,再dict()
>>> d3
{'A': 2, 'f': 1}书写格式:
- 大括弧{}
- key与value之间用冒号分开:
- 键值对之间用逗号,分开(2)访问字典
>>> dict['Nike']   #通过key,获得value
'just do it'

fromkeys()函数:快速创建/修改字典

>>> dict1 = {}.fromkeys((1,2,3))
>>> dict1
{1: None, 2: None, 3: None}>>> dict2 = {}.fromkeys((1,2,3),'number')
>>> dict2
{1: 'number', 2: 'number', 3: 'number'}>>> dict3 = {}.fromkeys((1,2,3),('one','two','three'))
>>> dict3
{1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}>>> dict4 = {}.fromkeys((1,2,3),'one','two','three')  #报错

keys()
values()
items()
in或not in
get()

>>> Dict = {}.fromkeys(range(10),'YY')
>>> Dict
{0: 'YY', 1: 'YY', 2: 'YY', 3: 'YY', 4: 'YY', 5: 'YY', 6: 'YY', 7: 'YY', 8: 'YY', 9: 'YY'}
>>> Dict.keys()
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> Dict.values()
['YY', 'YY', 'YY', 'YY', 'YY', 'YY', 'YY', 'YY', 'YY', 'YY']>>> #打印出字典的所有的key
>>> for ch in Dict.keys():print ch0
1
2
3
4
5
6
7
8
9
>>> >>> #打印所有的key-value对
>>> for item in Dict.items():print item(0, 'YY')
(1, 'YY')
(2, 'YY')
(3, 'YY')
(4, 'YY')
(5, 'YY')
(6, 'YY')
(7, 'YY')
(8, 'YY')
(9, 'YY')in或not in  判断key是否在字典Dict中
>>> 1 in Dict
True
>>> 11in Dict
False
>>> get()函数,获得字典中制定key的value
>>> print(Dict.get(11))
None
>>> print(Dict.get(1))
YY

clear()函数

清空字典a,可以用下面两种方法:
a = {}
a.clear()  #一般我们选择此方法因为:a = {}只是消除了a字典,并没有清除a的赋值,
而a.clear()全部都消除了,更加安全。
>>> a = {1:'one',2:'two'}
>>> b = a
>>> a = {}
>>> a
{}
>>> b   #只清楚了a,但是b没有清除
{1: 'one', 2: 'two'}>>> a = {1:'one',2:'two'}
>>> b = a
>>> a.clear()
>>> a
{}
>>> b  #全部清除
{}

copy():浅拷贝、赋值=

>>> a = {1:'one',2:'two',3:'three'}
>>> b = a  #赋值
>>> c = a.copy()  #浅拷贝>>> b   #赋值和浅拷贝后,b、c都等于a
{1: 'one', 2: 'two', 3: 'three'}
>>> c
{1: 'one', 2: 'two', 3: 'three'}>>> id(a)
42481592L
>>> id(b)
42481592L
>>> id(c)
38755320L
【重点注意】
赋值:a与b指向相同的内容(id相同),只是名字不同而已,
如果a改变,则b改变;同理,b改变,a也改变
浅拷贝:c与a的id都不同,内容相互不影响
>>> b[4] = 'four'  #往b中加入(4,'four')
>>> b
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}
>>> a   #那么,a也随之改变
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}
>>> c   #但是c不改变
{1: 'one', 2: 'two', 3: 'three'}
>>>

pop(): 给定一个key,弹出对应的value,并删除该key-value对

>>> a.pop(2)  #给定一个key,弹出对应的value
'two'

popitem():随机在字典中弹出key-value对

setfault():

>>> c
{1: 'one', 2: 'two', 3: 'three'}
>>> c.setdefault(1)  #如果存在key=1,就显示对应的value
'one'>>> c.setdefault('kobe','laker') #如果没有key,就添加key-value对到字典c
'laker'
>>> c
{1: 'one', 2: 'two', 3: 'three', 'kobe': 'laker'}

11.字典:当索引不好用时相关推荐

  1. 小甲鱼python的课后题好难_小甲鱼《零基础学习Python》课后笔记(二十六):字典——当索引不好用时2...

    测试题 0.Python的字典是否支持一键(Key)多值(Value)? 不支持.对相同的键赋值会覆盖原来的值.>>> dict2 = {1:'one',1:'two',3:'thr ...

  2. Python 字典:当索引不好用时

    字典:当索引不好用时 我们已经了解到,列表这种数据结构适用于将值组织到一个结构中,并且通过编号对其引用.本章学习一种通过`名字来引用值的数据结构.这种类型的数据结构称为映射.字典是Python中唯一内 ...

  3. P27 026字典:当索引不好用时1----20201005

    这里写目录标题 P27 026字典:当索引不好用时1----20201005 P31 030文件系统:介绍一个高大上的东西1006 P32 031永久存储:研制一缸美味的泡菜1006 P33 032异 ...

  4. 零基础入门学习Pyhton(23)字典:当索引不好用时

    Python中的字典 Python的字典把这个字称为"键"(key),把其对应的含义称为"值(value)" Python的字典在有些地方称为哈希(hash) ...

  5. Python基础教程:字典(当索引不好用时)

    一.定义与概念 1.字典是针对非序列集合而提供的一种数据类型 举例:检索学生信息. "<键><值>对". 键(即身份证号码) 值(即学生信息). " ...

  6. python 小甲鱼 好不好_[Python]小甲鱼Python视频第025课(字典:当索引不好用时)课后题及参考解答...

    # -*- coding: utf-8 -*- """ Created on Fri Mar 8 10:04:08 2019 @author: Administrator ...

  7. python学习笔记之三:字典,当索引不好用时

    字典是python中唯一内建的映射类型.字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里. 键可以是数字,字符串甚至是元组. 1. 创建和使用字典 字典可以通过下面的方式创建: pho ...

  8. [Python]小甲鱼Python视频第026课(字典:当索引不好用时2)课后题及参考解答

    # -*- coding: utf-8 -*- """ Created on Fri Mar 8 10:32:20 2019@author: Administrator ...

  9. Oracle 9i 10g编程艺术-深入数据库体系结构——第11章:索引

    第11章                      索引 索引是应用设计和开发的一个重要方面.如果有太多的索引,DML的性能就会受到影响.如果索引太少,又会影响查询(包括插入.更新和删除)的性能.要找 ...

最新文章

  1. tkinter实现弹出输入对话框并获取输入对话框中的值
  2. docker 报错 /usr/bin/docker-current: Error response from daemon: driver failed programming external
  3. [trustzone]-ARM Trustzone架构下的软件框图
  4. idea webapp目录404问题,war包方式运行
  5. Android常用开源框架
  6. [MySQL]关于amd.dll后门病毒入侵3306端口的临时解决方案
  7. Lyft的TypeScript实践
  8. ZBLOG简单的导航网站主题 支持内页详情目录模板
  9. Linux IO 测试工具 fio命令
  10. RHEL/Centos7下使用EPEL和REMI源
  11. 19-7/8作业:模拟实现用户密码管理
  12. IP Scanner Pro for mac(局域网IP扫描软件)
  13. Android倒计时器——CountDownTimer
  14. 苞米豆MyBatis-plus代码生成器
  15. 基于Android地图的共享单车骑行系统
  16. 虚地址到实地址的翻译过程
  17. Android Alarm详解
  18. 曾善美一女大学生的创业之路
  19. 智慧园区智能化管理系统解决方案
  20. 如何用计算机打出立方,立方米符号怎么打出来

热门文章

  1. 普通程序员如何转向AI方向
  2. 使用org.apache.jasper.JspC编译jsp文件--转载
  3. JTA 深度历险 - 原理与实现---转
  4. tensflow中加载 fashion_mnist 数据集时
  5. TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅
  6. 回顾亚马逊推荐系统20年发展
  7. Spring Cloud Alibaba - 18 Nacos Config配置中心加载相同微服务的不同环境下的通用配置
  8. java自带工具_深入了解Java JDK自带工具,包括javac、jar、jstack等,实用~
  9. java接口示例_【基础篇】java-接口及其示例
  10. python学习笔记(八)——继承