写点什么

Python 3.6.1 官方文档练习——初入江湖(三)

发布于: 2020 年 05 月 24 日
Python 3.6.1 官方文档练习——初入江湖(三)

一个人的口味要宽一点、杂一点,

"南甜北咸东辣西酸",

都去尝尝。


——汪曾祺


1

一种生成列表的简洁方法——列表推导式。

应用程序通常会从一个序列的每个元素的操作结果生成新的列表,或者生成满足特定条件的元素的子序列。

如果有数学基础,可以很明显的看出来有点类似一个复合函数,g(list2)=g(f(list1)).


例如,假设我们想要创建一个列表 squares(平方):



再看一个例子,用列表推导式输出满足条件的坐标:



需要注意的是:要处理两个表达式或者是两个变量(专业术语是元组形式)一定要用括号括起来。



表达式可以是一个列表推导式。



2


del 语句——可以从列表中根据索引而不是值来直接删除一个元素。

而上一期中介绍的 pop()方法则会先返回你删掉的元素,再删除:



下面是 del,就会悄无声息的删除掉你切出来的元素:




3


元组是由逗号分割开的若干值,如下面的 t:



元组输出的总是带着括号的,输入时如果没有混淆的情况下是不需要带的。

例如下面的 u 就必须带括号:




[这里的错误提示:

“ 类型错误:‘元组’对象不支持单个元素赋值 ”]


但是可以通过以下这种方式读取元组中每个元素的值(数量要和元素数相符):


4


集合(set)

集合具有无序性、确定性和互异性。

在 Python 中,集合的基本用途有成员测试和消除重复的条目

我非常喜欢用 list = list(set(list)) 来对列表去重然后再回复列表形式。


集合对象还支持并集、交集、差和对称差等数学运算。

[注意:若要创建一个空的集合你必须使用 set(),不能用{}(会创建字典)。]


下面上例子:



[对应确定性,即要么在集合内,要么不在]


一些集合运算:



5


字典(dictionary)

理解字典的最佳方式是把它看做无序的(键:值)集合,要求是键必须是唯一的(在同一个字典内)。

一对花括号将创建一个空的字典:{}。

花括号中由逗号分隔的键:值对将成为字典的初始值;

输出字典时也是按照这种方式输出。


下面是电话本的小例子:



用 dict(key = value,...)创建简单字典。 



6


遍历


1)用 enumerate 函数可以同时输出列表的索引和元素本身


后续学习中更常用的两种遍历方法:

一种方法是直接将 i 赋值为列表中的每个元素

for i in list:    print(i)#或者对列表中的每个元素进行操作,尤其是嵌套列表
复制代码


另一种方法是:

for i in range(len(list)):
print(list[i]) #往往是需要对 索引 进行特殊处理时用到,如要比较出某个元素是否等于,然后记录索引再删除
复制代码


2)zip 函数可以一次遍历两个列表:



3)sorted 函数对序列进行排序:



4)字典的遍历



5)有时遍历的同时会有一些操作,那么可以用 一个新的列表或字典 来装它,这样会避免操作改变了原始的序列,或者避免一些丢失。



解释一下 NaN :

一开始看着还以为是小黄人的外星语,搜了一下维基百科:NaNNot a Number,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。 

比如说,"math.isnan(value)" 中的 value 如果是非数字的话,返回值为真,所以最后得到的新序列中,是没有 "float('NaN')" 的。

pandas 在读取表格中不存在的值时,会替代成为 NaN

NaN 并不等于 '' (中间无空格),后者相当于有值只是值为空。不同编程语言表达同一个意思的符号可能是相似但是有区别的。如 python 里用 None 去表示什么也没有,SQL 里面用 NULL 表示。具体情况需要具体分析。




往期推荐:

初入江湖(二)

https://xie.infoq.cn/article/f9fa345db5386bb4033130a8f

初入江湖(一)

https://xie.infoq.cn/article/362bdf9967dbc8cb434f771b8


发布于: 2020 年 05 月 24 日阅读数: 66
用户头像

进一寸有进一寸的欢喜 2019.07.22 加入

喜欢玩 Python 和 写书摘 的女孩儿 见证我的成长-->微信公众号:小匚(fang,一声),等你来~

评论

发布
暂无评论
Python 3.6.1 官方文档练习——初入江湖(三)