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. while循环练习:

    输入姑娘的年龄后,进行以下判断: 如果姑娘小于18岁,打印"不接受未成年" 如果姑娘大于18岁小于25岁,打印"心动表白" 如果姑娘大于25岁小于45岁,打印& ...

  2. VxLAN、PAE、Telemetry简介

    VxLAN VxLAN协议将  Ethernet帧  封装在UDP内,再加上8个字节的VXLAN header,用来标识不同的二层网络. VxLAN的角度看网络虚拟化:在一套物理网络设备上虚拟出多个二 ...

  3. rsyncd.conf配置文件

    rsyncd.conf配置文件     #Rsync server#created by oldboy 15:01 2009-6-5##rsyncd.conf start##uid = rootgid ...

  4. java 各版本新特性

    Java 5,6,7,8,9,10,11新特性吐血总结 lkd_whh关注赞赏支持 12018.04.01 14:09:15字数 1,948阅读 10,615 作者:拔剑少年 简书地址:https:/ ...

  5. 建立PHP的本地调试环境PHP基础教程

    对于windows平台而言,PHP供给了一个安装程序,但是这个安装程序是不能直接运行来建立个人服务器平台的,而是必需嵌进现有的服务器平台,如:Windows NT下的IIS或Windows下的PWS, ...

  6. sh_06_函数的返回值

    sh_06_函数的返回值 def sum_2_num(num1, num2): """对两个数字的求和""" result = num1 + ...

  7. 编译依赖ndt_gpu库的包,遇到Eigen报错

    背景: 使用NDT建图,帧率比较慢,打算使用gpu加速计算. ndt_gpu是一个使用gpu加速ndt计算的库,首先在工作空间编译这个包. 然后在ndtMap包中链接这个库,其CMakelists.t ...

  8. Logger工具类

    org.slf4j.Logger的简单封装,传入所在类的class,和类名或全类名. public class LoggerFactory { public static Logger getLogg ...

  9. [design pattern](3) Dectorator

    前言 很久没有写关于设计模式的博客了,实在是没有太多的精力去写.但个人觉得设计模式在我们的日常开发中还是挺重要的,它提高了软件的可维护性.因此还是有必要坚持学习设计模式,写博客主要是为了加深我对设计模 ...

  10. SPFA算法的SLF优化 ——loj#10081. 「一本通 3.2 练习 7」道路和航线

    今天做到一道最短路的题,原题https://loj.ac/problem/10081 题目大意为给一张有n个顶点的图,点与点之间有m1条道路,m2条航线,道路是双向的,且权值非负,而航线是单向的,权值 ...