《利用Python进行数据分析》书籍第三章 内建数据结构、函数及文件 总结

前言

在经过历时四个月的学习,把利用Python进行数据分析一书已经全部看完,作为Python以及数据分析刚入门的我,这本书对我帮助很大。在此,我将在学习此书的过程总结起来,以便日后的复习使用。
在看这本书之前我已经读过了《Python编程从入门到实践》一书,所以看这本书的时候我是从第三章开始读起的,我使用的是Jupyter Notebook工具执行的Python语句。下面会按照章节的小结来进行总结。

目录

1.元组
2.列表
3.字典
4.集合
5.列表、集合和字典的推导式(难点)
6.文件操作系统

正文

1.元组

元组的定义

元组是一种固定长度,不可变的Python对象序列(引自《利用Python进行数据分析》一书第54页)

在这里有个特殊的例子就是,当元组中的一个对象本身是可变类型的时候,可以对这个可变类型对象进行修改,这是作为子对象的内部修改,不违背元组的定义。
在这里插入图片描述
这里的修改报错
在这里插入图片描述
这里的修改是可行的
在定义元组的时候有一个问题需要注意
在这里插入图片描述
这里的a变量并不是一个元组类型的变量。
Python为了区别元组和整型变量,在定义只有一个整型元素的元组的时候,需要在数字后面加上逗号
在这里插入图片描述
元组的拆包
元组的拆包个人认为是Python中一个很有趣的实现

tup = (4, 5, 6)
a, b, c = tup
a =4

2.列表

列表在Python中的应用可谓是非常之多。
利用append方法可以将元素添加到列表的尾部,insert方法可以将元素插入到指定的列表的位置,使用in关键字可以检查一个值是否在列表中

与字典、集合相比,检查列表中是否包含一个值是非常缓慢的。这是因为Python在列表中进行了线性逐个扫描。

利用sort和sorted可以对列表进行排序
IN [] : a = [9, 2, 3, 1, 0]
		a.sort()
		a
[Out]: [0, 1, 2, 3, 9]
IN [] : a = [9, 2, 3, 1, 0]
		sorted(a)
[Out]: [0, 1, 2, 3, 9]
IN [] : a
[Out]: [9, 2, 3, 1, 0]

从上面的三段代码中我们可以看出sort函数对列表进行排序将列表本身也改变了,而sorted函数排序之后生成了一个拷贝列表,没有改变原列表。
切片
切片的使用使得对列表型元素的访问变得十分方便。基本形式是start: stop
返回的子集中包含start位置的元素,不包括stop位置的元素
zip

zip将列表、元组或其他序列的元素配对,新建一个元组构成的列表

IN [] : seq1 = ['foo', 'bar', 'baz']
		seq2 = ['one', 'two', 'three']
		zipped = zip(seq1, seq2)
		list(zipped)
[out]: [('foo', 'one'), ('bar', 'two'), ('baz', 'three')]

3. 字典

与java的HashMap以及json格式的字符串十分类似,Python中的字典也是键值对形式的数据结构

可以使用del关键字或pop方法删除值,pop方法会在删除的同时返回被删除的值

删除均是按照键删除对应的值

4. 集合

集合是一种无序且元素唯一的容器。你可以认为集合也像字典,但是只有键没有值。

集合可以通过set函数来创建

set([2, 2, 2, 1, 3, 3])
{1, 2, 3}

集合保证的元素的唯一性

5. 列表、集合和字典的推导式

列表推导式是最受欢迎的Python语言特性之一。它允许你过滤一个容器的元素,用一种简明的表达式转换传递给过滤器的元素,从而生成一个新的列表。

IN [] :	strings = ['a', 'as', 'bat', 'car', 'dove', 'python']
		[x.upper() for x in strings if len(x) > 2]
[Out] : ['BAT', 'CAR', 'DOVE', 'PYTHON']
这里推导式可以解读为:遍历strings列表中的元素,将长度大于2的元素全部转为大写,然后生成一个新的列表
在遇到更为复杂的推导式的时候,我们要逐步解读推导式要哪些元素,并且对这些元素做什么操作

6.文件与操作系统

在以后的数据分析中,我们的数据源会以各种形式的方式存储下来,比如txt格式、csv格式、xlsx格式等等。Python提供了许多高级工具从硬盘中读取数据转换为Python数据格式

IN [] : path = 'segismundo.txt'
		f = open(path)
		lines = [x.rstrip() for x in f]
		lines
[Out]:  ['Sue帽a el rico en su riqueza,',
	   'que m谩s cuidados le ofrece;',
		 '',
		 'sue帽a el pobre que padece',
		 'su miseria y su pobreza;',
		 '',
		 'sue帽a el que a medrar empieza,',
		 'sue帽a el que afana y pretende,',
		 'sue帽a el que agravia y ofende,',
		 '',
		 'y en el mundo, en conclusi贸n,',
		 'todos sue帽an lo que son,',
		 'aunque ninguno lo entiende.',
		 '']

猜你喜欢

转载自blog.csdn.net/Mr_Liuzhongbin/article/details/89148938