一、什么是字典?

字典是Python语言中唯一的映射类型。

映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。

字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。

字典类型与序列类型的区别:

1.存取和访问数据的方式不同。
2.序列类型只用数字类型的键(从序列的开始按数值顺序索引);
3.映射类型可以用其他对象类型作键(如:数字、字符串、元祖,一般用字符串作键),和序列类型的键不同,映射类型的键直4.接或间接地和存储数据值相关联。
5.映射类型中的数据是无序排列的。这和序列类型是不一样的,序列类型是以数值序排列的。
6.映射类型用键直接“映射”到值。

字典是Python中最强大的数据类型之一。

二、字典的操作

# 字典的添加、删除、修改操作
dict = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
dict["a"] = "watermelon" # 修改key:"a"对应的value:”apple"改为“watermelon”
del (dict["a"]) # 万能删除操作
dict["c"] = "grapefruit" # 修改key对应value
print(dict.pop("b")) # 取出一个key:"b",并从dict中移除他
dict.clear() # 清除字典
# 字典的遍历
dict1 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
for k in dict1:
print("dict[%s]=" % k, dict1[k]) # 字典items()的使用
dict2 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
print(dict2.items()) # 每个元素是一个key和value组成的元组,以列表的方式输出 # 调用items()实现字典的遍历
dict3 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
for (k, v) in dict3.items():
print("dict3[%s]=" % k, v) # 使用列表、字典作为字典的值
dict4 = {"a": ("apple",), "bo": {"b": "banana", "o": "orange"}, "g": ["grape", "grapefruit"]}
print(dict4["a"])
print(dict4["a"][0])
print(dict4["bo"])
print(dict4["bo"]["o"])
print(dict4["g"])
print(dict4["g"][1]) dict5 = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"}
# 输出key的列表
print(dict5.keys())
# 输出value的列表
print(dict5.values())
# 每个元素是一个key和value组成的元组,以列表的方式输出
print(dict5.items()) # 字典中元素的获取方法
dict6 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
print(dict6)
print(dict6.get("c", "apple"))
print(dict6.get("e", "apple")) # get()的等价语句
D = {"key1": "value1", "key2": "value2"}
if "key1" in D:
print(D["key1"])
else:
print("None") # 字典的更新
dict7 = {"a": "apple", "b": "banana"}
print(dict7)
dict13 = {"c": "grape", "d": "orange"}
dict7.update(dict13)
print(dict7)
# dpate()的等价语句
D = {"key1": "value1", "key2": "value2"}
E = {"key3": "value3", "key4": "value4"}
for k in E:
D[k] = E[k]
print(D)
# 字典E中含有字典D中的key
D = {"key1": "value1", "key2": "value2"}
E = {"key2": "value3", "key4": "value4"}
for k in E:
D[k] = E[k]
print(D)
# 设置默认值
dict7 = {}
dict7.setdefault("a")
print(dict7)
dict7["a"] = "apple"
dict7.setdefault("a", "default")
print(dict7) # 调用sorted()排序
dict7 = {"a": "apple", "b": "grape", "c": "orange", "d": "banana"}
print(dict7) # 按照key排序
print(sorted(dict7.items(), key=lambda d: d[0])) # 按照value排序
print(sorted(dict7.items(), key=lambda d: d[1])) # 字典的浅拷贝
dict7 = {"a": "apple", "b": "grape"}
dict10 = {"c": "orange", "d": "banana"}
dict11 = dict7.copy()
print(dict10) # 字典的深拷贝
import copy dict7 = {"a": "apple", "b": {"g": "grape", "o": "orange"}}
dict8 = copy.deepcopy(dict7)
dict9 = copy.copy(dict7)
dict8["b"]["g"] = "orange"
print(dict7)
dict9["b"]["g"] = "orange"
print(dict7)

、使用字典的注意事项

1、不能允许一键对应多个值;
2、键必须是可哈希的。

Ppthon基础学习之Dict的更多相关文章

  1. C#/.NET 基础学习

    初识C# C#是微软公司发布的面向对象的.运行于.NET Framework之上的高级程序设计语言.与Java有着明显不同,借鉴Delphi的特点,与COM(组件对象模型)直接集成,是微软公司 .NE ...

  2. D03——C语言基础学习PYTHON

    C语言基础学习PYTHON——基础学习D03 20180804内容纲要: 1 函数的基本概念 2 函数的参数 3 函数的全局变量与局部变量 4 函数的返回值 5 递归函数 6 高阶函数 7 匿名函数 ...

  3. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  4. Python3.x:基础学习

    Python3.x:基础学习 1,Python有五种标准数据类型 1.数字 2.字符串 3.列表 4.元组 5.字典 (1).数字 数字数据类型存储数字值.当为其分配值时,将创建数字对象. var1 ...

  5. Python web框架 Tornado(一)基础学习

    概述 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了 ...

  6. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  7. Python入门基础学习(函数)

    Python基础学习笔记(三) 函数的概念: 所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用 函数的使用包含两个步骤: 1.定义函数 --封装独立的功能 2.调用函数 --享受 ...

  8. Python入门基础学习(列表/元组/字典/集合)

    Python基础学习笔记(二) 列表list---[ ](打了激素的数组,可以放入混合类型) list1 = [1,2,'请多指教',0.5] 公共的功能: len(list1) #/获取元素 lis ...

  9. Python入门基础学习(环境安装/字符串)

    Python基础学习笔记(一) 编译性语言与解释性语言: 编译性语言:读完代码再执行,一般会生成一个文件,如C语言会生成一个.h的文件给计算机执行 如:C,C++,C#,Java,Go 解释性语言:读 ...

随机推荐

  1. 重载(Overloading)以及模板(Template)

    继续<C++ premier plus>的学习 (1)函数重载,通俗来说,就是相同的函数名字名下,存在多个函数,要使得这成立,各个同名函数必须形参列表(也称为"签名", ...

  2. Java 类加载机制详解

    一.类加载器 类加载器(ClassLoader),顾名思义,即加载类的东西.在我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘.网络或其他来源加载到内存中,并对字节码进行解 ...

  3. 如何评估oracle AWR 的在oracle 中的存储情况

    如何评估oracle AWR 的在oracle 中的存储情况 如果把awr保存时间从默认的7天修改为30天,采样时间从1小时修改到更短,修改之后如何预估空间占用? ------------------ ...

  4. android EditText中的inputType

    android 1.5以后添加了软件虚拟键盘的功能,所以在输入提示中将会有对应的软键盘模式 android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用.这也大大 ...

  5. 专业DBA 遇到的问题集

    http://blog.csdn.net/mchdba/article/category/1596355/3

  6. Liunx Shell入门

    本人也是初学习Liunx,如有错误请指出.Liunx版本:Ubuntu 14.04 一.Liunx命令基础 在Ubuntu下打开终端快捷键为:ctrl+Alt+T Liunx命令的基本格式:comma ...

  7. [转] Javascript中数组与字典(即object)的使用

    简述: 简单记录一下数据结构字典和数组, 其实在Javascript这种弱类型的脚本语言中,数组同时也就是字典,下面主要就是字典数组的简易使用 代码: 1. 数组中添加map <!DOCTYPE ...

  8. 在cmd窗口下运行Java程序时无法找到主类的解决办法

    我是Java的初学者,昨天在cmd窗口下运行一段Java程序时总是有问题,可以编译但无法执行. 也就是javac时正确,一旦java时就不对了,提示找不到或无法加载主类,经百度谷歌再加上自己的摸索终于 ...

  9. 《Android开发艺术探索》读书笔记 (4) 第4章 View的工作原理

    本节和<Android群英传>中的第3章Android控件架构与自定义控件详解有关系,建议先阅读该章的总结 第4章 View的工作原理 4.1 初始ViewRoot和DecorView ( ...

  10. iOS多线程编程之GCD的使用

    什么是线程呢? 1个CPU执行的CPU命令列为一条无分叉的路径即为线程. 这种无分叉路径不止1条,存在多条时即为多线程. 什么是GCD? Grand Central Dispatch (GCD)是异步 ...