《Python数据分析》第二版.第三章.[学习笔记][Jupyter notebook]
第3章 Python的数据结构、函数和文件
1.元组是一个固定长度,不可改变的Python序列对象
tup = 4, 5, 6
nested_tup = (4, 5, 6), (7, 8) #复杂元组
2.tuple 可以将任意序列或迭代器转换成元组
In : tup = tuple('string')
In : tup
Out: ('s', 't', 'r', 'i', 'n', 'g')
3.元组中的对象不能修改,列表除外
4.+ 可以将元组串联起来
5.元组 * 一个整数,像列表一样,会将几个元组的复制串联起来
6.将元组赋值给类似元组的变量,Python会试图拆分等号右边的值
7.在Python中,替换可以这样做:b, a = a, b
In : seq = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
In : for a, b, c in seq:: print('a={0}, b={1}, c={2}'.format(a, b, c))
a=1, b=2, c=3
a=4, b=5, c=6
a=7, b=8, c=9
8.*obj 抓取任意长度列表的位置参数, Python程序员会将不需要的变量使用下划线 a, b, *_ = values
In : values = 1, 2, 3, 4, 5
In : a, b, *rest = values
In : rest
Out: [3, 4, 5]
9.count 统计某值出现的频率
10.列表的长度可变、内容可以被修改。可以用 [ ] 定义或list()
11.append 在列表末尾添加元素
12.insert 在特定的位置插入元素
13.pop它移除并返回指定位置的元素
14.remove去除某个值,会先寻找第一个值并除去
15.in 可以检查列表是否包含某个值, not in 相反
16.extend 追加元素
17.sort 排序函数,obj.sort(key=len)按长度对字符串进行排序
18.bisect 模块支持二分查找,向已排序的列表插入值(需要 import)
In : import bisect
In : c = [1, 2, 2, 2, 3, 4, 7]
In : bisect.insort(c, 6)#插入某值,并保持排序
In : c
Out: [1, 2, 2, 2, 3, 4, 6, 7]
In : bisect.bisect(c, 6)#可以查询想要插入值,将要插入的位置
Out: 7
19.切片不包含结束元素,seq[1:5],seq[:5],seq[3:],负数表示从后往前数,第多少个
20.seq[::step],两个冒号后,使用step变量,可以间隔取数,seq[::-1]可以逆转列表或元组
21.enumerate函数
for i, value in enumerate(collection):# i 跟踪当前项的序号In : some_list = ['foo', 'bar', 'baz'] #添加位置信息,整合成一个字典
In : mapping = {}
In : for i, v in enumerate(some_list):....: mapping[v] = i
In : mapping
Out: {'bar': 1, 'baz': 2, 'foo': 0}
22.sorted 函数可以从任意序列的元素返回一个新的排好序的列表
23.zip函数可以将多个列表、元组或其它序列,成对组合成一个元组列表,元素的个数取决于最短的序列
In : pitchers = [('Nolan', 'Ryan'), ('Roger', 'Clemens'),('Schilling', 'Curt')]
In : first_names, last_names = zip(*pitchers)#行的列表转换为列的列表
In : first_names
Out: ('Nolan', 'Roger', 'Schilling')
In : last_names
Out: ('Ryan', 'Clemens', 'Curt')
24.reversed函数从后向前迭代一个序列
25.字典
d1 = {} #空字典
d1 = {'a' : 'some value', 'b' : [1, 2, 3, 4]} #创建字典
In : d1[7] = 'an integer' #添加元素
In : 'b' in d1 #检查列表和元组是否包含某个值的方法
In : del d1[7] #删除某元素
ret = d1.pop('b')#删除键的同时返回键对应的值
list(d1.keys()) #将键取出
list(d1.values()) #将值取出
d1.update({'b' : 'foo', 'c' : 12}) #将一个字典与另一个融合,有相同键,则会覆盖
26.两个序列配对组合成字典
mapping = {} #方法一
for key, value in zip(key_list, value_list):mapping[key] = value
mapping = dict(zip(range(5), reversed(range(5)))) #方法二
27.dict的方法get和pop可以取默认值进行返回,value = some_dict.get(key, default_value)
28.setdefault 方法, 和collections模块的defaultdict
In : words = ['apple', 'bat', 'bar', 'atom', 'book']
In : by_letter = {}
In : for word in words:: letter = word[0]: if letter not in by_letter:: by_letter[letter] = [word]: else:: by_letter[letter].append(word):
In : by_letter
Out: {'a': ['apple', 'atom'], 'b': ['bat', 'bar', 'book']}for word in words: #setdefault方法改进letter = word[0]by_letter.setdefault(letter, []).append(word)from collections import defaultdict #collections模块的defaultdict改进
by_letter = defaultdict(list)
for word in words:by_letter[word[0]].append(word)
29.字典的值可以是任意Python对象,而键通常是不可变的标量类型(整数、浮点型、字符串)或元组(元组中的对象必须是不可变的)。这被称为“可哈希性”。可以用hash函数检测一个对象是否是可哈希的(可被用作字典的键)
30.要用列表当做键,可以将列表转化为元组,只要内部元素可以被哈希,它也就可以被哈希,d[tuple([1, 2, 3])] = 5
31.集合,集合是无序的不可重复的元素的集合,set([2, 2, 2, 1, 3, 3]) 或{2, 2, 2, 1, 3, 3} 创建
32.常用的集合方法
33.与字典类似,集合元素通常都是不可变的。要获得类似列表的元素,必须转换成元组
34.a.issubset(b) b.issuperset(a) 测一个集合是否是另一个集合的子集或父集
35. == 判断集合是否相等
36.推导式
In :strings = ['a', 'as', 'bat', 'car', 'dove', 'python']
In : [x.upper() for x in strings if len(x) > 2]
Out: ['BAT', 'CAR', 'DOVE', 'PYTHON']
#字典的推导式
dict_comp = {key-expr : value-expr for value in collection if condition}
#集合的推导式
set_comp = {expr for value in collection if condition}
37.map函数
In : set(map(len, strings))
Out: {1, 2, 3, 4, 6}
38.
《Python数据分析》第二版.第三章.[学习笔记][Jupyter notebook]相关推荐
- 《Python数据分析》第二版.第二章.[学习笔记][Jupyter notebook]
第2章 Python语法基础,IPython和Jupyter Notebooks 2.2 IPython 基础 1. 变量前后使⽤问号?,可以显示对象的信息 2. ??会显示函数的源码 3. %run ...
- 数据结构(C语言)第二版 第三章课后答案
数据结构(C语言)第二版 第三章课后答案 1~5 C C D A A 6~10 D A B C D 11~15 D D B C B 1.选择题 (1)若让元素1, 2, 3 , 4, 5 依次进栈,则 ...
- 多维随机变量及其分布——《概率论及其数理统计》第三章学习笔记
多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 文章目录 多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 前言 MindMap 二维随机变量 定义与 ...
- 工程伦理第三章学习笔记2020最新
工程伦理第三章学习笔记2020最新 因为之前自己在网上找答案总是觉得费劲,一道一道的找,很慢,突然找到了前两章的答案,感觉有一种前人种树后人乘凉的感觉,于是自己在艰难找完第三章习题并全对的情况下,将题 ...
- 周志华西瓜书第三章学习笔记
第三章学习笔记 文章目录 第三章学习笔记 1.知识脉络 2.我的笔记 参考 1.知识脉络 2.我的笔记 这一章公式推导实在太多了,需要补充的推导过程也有很多,就不写电子档了.扩展公式推导和LDA部分补 ...
- 学完可以解决90%以上的数据分析问题-利用python进行数据分析第二版(代码和中文笔记)...
<利用python进行数据分析>是数据分析的基础教程,绝大部分数据分析师的入门教材,目前已经升级到第二版.本站搜集了教材的第二版原版代码进行中文翻译和注释,并做了一定的笔记.基本上只需要看 ...
- 数据结构c语言版第二版第三章课后答案,数据结构(C语言版)习题集答案第三章.doc...
数据结构(C语言版)习题集答案第三章.doc 习题三3.1 3.10 3.13 3.5 3.6 3.15 3.17 3.19 3.24 3.29 3.31 3.51 给定操作序列P1P2P3PiPn( ...
- 【从0开始入门python】一个半月的三万字学习笔记汇总!!!
python学习 DAY01-DAY04基础操作 DAY05-DAY09基本模块 常用pip源 (1)阿里云 http://mirrors.aliyun.com/pypi/simple/ (2)豆瓣 ...
- 孙鑫VC++深入详解第三章学习笔记
第三章 3.1创建MFC AppWizard 如何利用vs2019创建MFC应用见参考文献[1] 需要注意的地方有 [1] 创建MFC单文档应用程序 [2]开启类视图窗口 3.2基于MFC的程序框架剖 ...
最新文章
- canonicalize_url()方法格式化 url
- Tensorflow从入门到精通之——Tensorflow基本操作
- 基于python实现opencv视频去抖动
- Sqlcmd连接SQL方式(远程机器直接查询SQL)
- 利用boost做string到wstring转换,以及字符集转换
- RuoYi-Cloud 部署篇_03(linux环境 Oracle +nginx版本)
- JavaScript截断/切片/修剪掉字符串中的最后一个字符
- linux服务器查看系统装到哪个盘,查看linux安装了什么服务器地址
- CentOS 7 Tomcat 安装
- 制作效果远超CHM的帮助文档制作软件,速看!
- 印象笔记 离线版_印象笔记离线版
- RAII惯用法:C++资源管理的利器
- Are You a Software Architect?
- python外卖点餐系统毕业设计开题报告
- 【毕业设计】 基于单片机的移动共享充电宝设计与实现 - 物联网嵌入式 stm32 c51
- 关于幂级数求和是否弃用首项的理解
- 定义一个数组存储10个上面描述的小怪兽,每个小怪兽的名字为(小怪兽+数组下标)
- php制作网页教程pdf,php中pdf页面制作方法
- PYTHON BZ2 安装
- SQL效率轻优化【白丁水笔知其然】