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. Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力

    A 水题 /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) using namespace ...

  2. 34.ITerm配置使用——2019年12月24日

    2019年12月23日15:17:36 ITerm使用教程 1.快键键配置 设置方法 设置方法如下: (1)选择 Preference 进入偏好设置: (2)选择 Profiles > Keys ...

  3. redux 中的 redux-thunk(中间件)

    前言 空闲时间把redux中的redux-thunk中间件回顾下,因为以前没有写博客的习惯,都怪自己太年轻,好了 其实:      redux的核心概念其实很简单:将需要修改的state都存入到sto ...

  4. 《Head First 软件开发》阅读四

    构建代码:自动化构建 代码的完成不只是能运行,还包括编译代码和打包成可配置的单元.学会一个构建工具来编写自己的说明处理源代码.新的团队成员需要立刻知道软件的关联组件和主要类去做测试,但开发人员不是心理 ...

  5. 【转】Linux逻辑卷管理

    一. 前言 LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性.L ...

  6. C++中的字符数组、字符指、字符串针(腾讯)

    一.字符数组 1.定义时进行初始化的方式 (1)char c[12]={'I',' ','a','m',' ','h','a','p','p','y'};//最后两个元素自动补‘\0’(不是空格),其 ...

  7. hdu 6377 : 度度熊看球赛

    题目链接 题解: 将原问题转换为 对于全部 (2n)! 种情况,每种情况对ans的贡献为 D^k,其中k表示该情况下有k对情侣座位相邻. 预处理好共有 i (1<=i<=N)对情侣时,出现 ...

  8. 洛谷 P1282 多米诺骨牌 ( 线性DP )

    题意 : 题目链接 分析 :  一开始这个想法也有想到,但是貌似要开很大数组,就感觉应该不行 遂放弃想其他方法,万万没想到注意到可以滚动优化(其实不优化也可以过) 定义 dp[i][j] 表示 到第 ...

  9. 模板_LCA

    // luogu-judger-enable-o2 #include<bits/stdc++.h> #define maxn 1000002 //#define int long long ...

  10. Spoj4060 game with probability Problem

    题目链接:Click here Solution: 刚开始还以为博弈论加概率,然而并不是... 设两个状态:\(f(i)\)表示当前剩下\(i\)个石头时,先手的获胜概率,\(g(i)\)为后手的获胜 ...