Python基础语法之字典
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基础语法之字典的更多相关文章
- Python 基础语法(四)
Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...
- Python 基础语法(二)
Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...
- 吾八哥学Python(四):了解Python基础语法(下)
咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...
- python学习第三讲,python基础语法之注释,算数运算符,变量.
目录 python学习第三讲,python基础语法之注释,算数运算符,变量. 一丶python中的基础语法,注释,算数运算符,变量 1.python中的注释 2.python中的运算符. 3.pyth ...
- python基础语法、数据结构、字符编码、文件处理 练习题
考试范围 '''1.python入门:编程语言相关概念2.python基础语法:变量.运算符.流程控制3.数据结构:数字.字符串.列表.元组.字典.集合4.字符编码5.文件处理''' 考试内容 1.简 ...
- python基础语法及知识点总结
本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...
- 【转】Python基础语法
[转]Python基础语法 学习一门编程语言,通常是学习该语言的以下几个部分的内容: 基础语法:如,变量的声明与调用.基本输出语句.代码块语法.注释等: 数据类型:通常都为 数字.字符串.布尔值.数组 ...
- Python基础语法题库
引言: 语法练习包括Python基础语法.数据类型.字符编码和简单文件操作等内容. 正文(参考答案附录在题目下方): 1.Python 里用来告知解释器跳过当前循环中的剩余语句,然后继续进行下一轮循环 ...
- 『Python基础-10』字典
# 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...
随机推荐
- Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力
A 水题 /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) using namespace ...
- 34.ITerm配置使用——2019年12月24日
2019年12月23日15:17:36 ITerm使用教程 1.快键键配置 设置方法 设置方法如下: (1)选择 Preference 进入偏好设置: (2)选择 Profiles > Keys ...
- redux 中的 redux-thunk(中间件)
前言 空闲时间把redux中的redux-thunk中间件回顾下,因为以前没有写博客的习惯,都怪自己太年轻,好了 其实: redux的核心概念其实很简单:将需要修改的state都存入到sto ...
- 《Head First 软件开发》阅读四
构建代码:自动化构建 代码的完成不只是能运行,还包括编译代码和打包成可配置的单元.学会一个构建工具来编写自己的说明处理源代码.新的团队成员需要立刻知道软件的关联组件和主要类去做测试,但开发人员不是心理 ...
- 【转】Linux逻辑卷管理
一. 前言 LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性.L ...
- C++中的字符数组、字符指、字符串针(腾讯)
一.字符数组 1.定义时进行初始化的方式 (1)char c[12]={'I',' ','a','m',' ','h','a','p','p','y'};//最后两个元素自动补‘\0’(不是空格),其 ...
- hdu 6377 : 度度熊看球赛
题目链接 题解: 将原问题转换为 对于全部 (2n)! 种情况,每种情况对ans的贡献为 D^k,其中k表示该情况下有k对情侣座位相邻. 预处理好共有 i (1<=i<=N)对情侣时,出现 ...
- 洛谷 P1282 多米诺骨牌 ( 线性DP )
题意 : 题目链接 分析 : 一开始这个想法也有想到,但是貌似要开很大数组,就感觉应该不行 遂放弃想其他方法,万万没想到注意到可以滚动优化(其实不优化也可以过) 定义 dp[i][j] 表示 到第 ...
- 模板_LCA
// luogu-judger-enable-o2 #include<bits/stdc++.h> #define maxn 1000002 //#define int long long ...
- Spoj4060 game with probability Problem
题目链接:Click here Solution: 刚开始还以为博弈论加概率,然而并不是... 设两个状态:\(f(i)\)表示当前剩下\(i\)个石头时,先手的获胜概率,\(g(i)\)为后手的获胜 ...