1 字典基础

  1.1 字典是无序的对象的集合,通过键来存取,字典的键只能是不可变类型。

  1.3 字典的长度可变,异构,任意嵌套。

  1.2 python中不可变数据类型包括:数值类型,字符串和元组。

2 创建字典的四种方法

  2.1如果你可以事先可以拼出整个字典:

 dic = {'name': 'Bob', 'age': 40}

  2.2 如果你需要动态的一次创建字典的一个字段:

 dic = {}
dic['name'] = 'Bob'
dic['age'] = 20

  2.3 如果你想书写简单,而且字典的键是字符串:

 dic = dict(name='Bob', age=18)
print(dic)

  2.4 如果你需要在程序运行时通过序列构建字典:

 dic = dict([('name', 'Bob'), ('age', 18)])
print(dic)

3 字典的基本操作

  3.1 字典的基本操作之增

 # 通过动态的赋值来为字典增加键值对
dic = {}
dic['name'] = 'Bob'
dic['age'] = 60
print(dic) # {'name': 'Bob', 'age': 60} # 通过setdefault方法增加键值对
a = dic.setdefault('name', 'alex') # 当原字典中有'name',则不去修改,否则增加
b = dic.setdefault('age', 22) # 同上
c = dic.setdefault('sex', '男') # 同上
print(a, b, c) # Bob 60 男
print(dic) # {'name': 'Bob', 'age': 60, 'sex': '男'}

  3.2 字典的基本操作之查

 # 通过键来查看值
print(dic['name']) # Bob
print(dic['age']) #
print(dic['sex']) # 男 # 通过方法keys(),values(),items()
print(dic.keys()) # dict_keys(['name', 'age', 'sex'])
print(dic.values()) # dict_values(['Bob', 60, '男'])
print(dic.items()) # dict_items([('name', 'Bob'), ('age', 60), ('sex', '男')])

  3.3 字典的基本操作之改

 dic = {'name': 'Bob', 'age': 60, 'sex': '男'}
# 通过赋值方式来修改
dic['name'] = 'alex'
print(dic) # {'name': 'alex', 'age': 60, 'sex': '男'} # 通过方法update()来修改
dic2 = {'sex': '女', 'hobby': 'learn', 'country': 'China'}
dic.update(dic2) # 原来不存在的键值对追加,存在的键修改其值
print(dic) # {'name': 'alex', 'age': 60, 'sex': '女', 'hobby': 'learn', 'country': 'China'}

  3.3 字典的基本操作之删

 dic = {'name': 'Bob', 'age': 60, 'sex': '男'}
# 通过del删除字典中的元素或整个字典
del dic['name']
print(dic) # {'age': 60, 'sex': '男'}
del dic
# print(dic) # NameError: name 'dic' is not defined dic = {'name': 'Bob', 'age': 60, 'sex': '男'}
# 通过pop()方法
name = dic.pop('name')
print(name) # Bob
print(dic) # {'age': 60, 'sex': '男'}

4 字典中其他内置方法

  4.1 fromkeys()

 dic = dict.fromkeys(['key1', 'key2', 'key3'], 'values')
# 类似将字典中的键初始化为一个默认的值
print(dic) # {'key1': 'values', 'key2': 'values', 'key3': 'values'}
dic2 = dic.fromkeys(['key1', 'key2', 'key3'], ['values1', 'values2'])
print(dic2) # {'key1': ['values1', 'values2'], 'key2': ['values1', 'values2'], 'key3': ['values1', 'values2']}
dic2['key1'][0] = 'values3' # fromkeys()创建的字典,修改字典中的一个嵌套列表中的值,多有的键值都修改
print(dic2) # {'key1': ['values3', 'values2'], 'key2': ['values3', 'values2'], 'key3': ['values3', 'values2']}

  4.2 get()

 dic = {'name': 'Bob', 'age': 60, 'sex': '男'}
print(dic.get('name')) # Bob
print(dic.get('hobby')) # None 可以判断字典中是否有此键
print(dic.get('hobby', 'basketball')) # basketball

  4.3 copy()

    注:只是浅拷贝,只对顶层的拷贝

 dic = {'name': 'Bob', 'age': 60, 'sex': '男', 'hobby': ['read', 'basketball']}
dic2 = dic.copy() # {'name': 'Bob', 'age': 60, 'sex': '男', 'hobby': ['read', 'basketball']}
print(dic2)
dic['hobby'][0] = 'write'
print(dic2) # {'name': 'Bob', 'age': 60, 'sex': '男', 'hobby': ['write', 'basketball']}

5 字典的排序

  采用sorted()

 dic = {'b': 'b', 'a': 'a', 'c': 'c'}
print(dic)
for key in sorted(dic):
print(key, dic[key])

6 字典的遍历

 dic = {'name': 'Bob', 'age': 60, 'sex': '男'}
for key in dic:
print(key, dic[key]) for item in dic.items():
print(item) for i, v in dic.items():
print(i, v)

Python基础语法之字典的更多相关文章

  1. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

  2. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  3. 吾八哥学Python(四):了解Python基础语法(下)

    咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...

  4. python学习第三讲,python基础语法之注释,算数运算符,变量.

    目录 python学习第三讲,python基础语法之注释,算数运算符,变量. 一丶python中的基础语法,注释,算数运算符,变量 1.python中的注释 2.python中的运算符. 3.pyth ...

  5. python基础语法、数据结构、字符编码、文件处理 练习题

    考试范围 '''1.python入门:编程语言相关概念2.python基础语法:变量.运算符.流程控制3.数据结构:数字.字符串.列表.元组.字典.集合4.字符编码5.文件处理''' 考试内容 1.简 ...

  6. python基础语法及知识点总结

    本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...

  7. 【转】Python基础语法

    [转]Python基础语法 学习一门编程语言,通常是学习该语言的以下几个部分的内容: 基础语法:如,变量的声明与调用.基本输出语句.代码块语法.注释等: 数据类型:通常都为 数字.字符串.布尔值.数组 ...

  8. Python基础语法题库

    引言: 语法练习包括Python基础语法.数据类型.字符编码和简单文件操作等内容. 正文(参考答案附录在题目下方): 1.Python 里用来告知解释器跳过当前循环中的剩余语句,然后继续进行下一轮循环 ...

  9. 『Python基础-10』字典

    # 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...

随机推荐

  1. UILabel的行间距,字间距处理

    啥都不说了,直接上代码,做了一个Category #import <UIKit/UIKit.h> @interface UILabel (ChangeLineSpaceAndWordSpa ...

  2. uwsgi 的启动、停止、重启

    ## 一.概念释义### WSGI WSGI 是一个Web服务器(如nginx)与应用服务器(如uWSGI)通信的一种规范(协议).官方定义是,the Python Web Server Gatewa ...

  3. CodeForces-721D-Maxim and Array(优先队列,贪心,分类讨论)

    链接: https://vjudge.net/problem/CodeForces-721D 题意: Recently Maxim has found an array of n integers, ...

  4. canal 环境搭建 kafka Zookeeper安装(二)

    第一步 创建Zookeeper 下载完成后 修改 Zookeeper中的 zoo.cfg 修改 dataDir .dataLogDir 集群模式 server.1=ServerIP:2888:3888 ...

  5. CSS自适应布局

    目标效果: 缩小浏览器之后 在<head>最前面引入flexible.js <head> ... <script type="text/javascript&q ...

  6. PHP培训教程 php几个不起眼儿的小技巧

    说是不起眼儿的小技巧,其实应该说是不常用的常规应用吧.很多事情就是这样,知道是一马事儿,会用是一马事儿,精习又是另外一马事儿.而成为高手更是需要扎实的基本功. str_repeat 重复输出字符串就靠 ...

  7. Redis实战(十四)Redis实现Session共享

    序言 登录的处理流程: 1.登录页面提交用户名密码. 2.登录成功后生成token.Token相当于原来的jsessionid,字符串,可以使用uuid. 3.把用户信息保存到redis.Key就是t ...

  8. web下载文件夹

    1.文件下载有两种方式:一种是超链接,一种是Servlet提供下载. 2.超链接下载时:当文件可以在网页直接打开时,会直接打开文件,而不是下载,当文件打开不了时,会提供下载窗口. 3.超链接下载原理 ...

  9. 聊聊spring-boot-starter-data-redis的配置变更

    本文主要研究一下spring-boot-starter-data-redis的配置变更 配置变更 以前是spring-boot的1.4.x版本的(spring-data-redis为1.7.x版本), ...

  10. eclipse导出java项目jar包(依赖第三方jar包)

    一.在项目根目录下建一个文件:MANIFEST.MF 内容: Manifest-Version: 1.0 Class-Path: lib/commons-compress-1.9.jar lib/co ...