Python学习手册(第4版).4

要表示字符串 Bob said "I'm OK".

由于 ' 和 " 会引起歧义,因此,我们在它前面插入一个\表示这是一个普通字符,不代表字符串的起始,因此,这个字符串又可以表示为

'Bob said \"I\'m OK\".'

注意:转义字符 \ 不计入字符串的内容中。

常用的转义字符还有:

\n 表示换行

\t 表示一个制表符

\\ 表示 \ 字符本身

三个引号或淡引号

Python也支持原始(raw)字符串常量,即去掉反斜线转义机制(这样的字符串常量是以字母“r”开头的)。

模式匹配

在继续学习之前,值得关注的一点就是字符串对象的方法能够支持基于模式的文本处理。文本的模式匹配是本书范围之外的一个高级工具,但是有其他脚本语言背景的读者也许对在Python中进行模式匹配很感兴趣,我们需要导入一个名为re的模块。这个模块包含了类似搜索、分割和替换等调用,但是因为使用模式去定义子字符串,可以更通用一些:

>>> import re

>>> match = re.match('Hello[ \t]*(.*)world','Hello Python world')

>>> match.group(1)

'Python '

这个例子的目的是搜索子字符串,这个子字符串以“Hello,”开始,后面跟着零个或几个制表符或空格,接着有任意字符并将其保存至匹配的group中,最后以“world.”结尾。如果找到了这样的子字符串,与模式中括号包含的部分匹配的子字符串的对应部分保存为组。

通过help可知:编译一个正则表达式模式,返回一个模式对象。

第二个参数flags是匹配模式,可以使用按位或’|’表示同时生效,也可以在正则表达式字符串中指定。

Pattern对象是不能直接实例化的,只能通过compile方法得到。

列表是一个任意类型的对象的位置相关的有序集合,它没有固定的大小。

Python的列表与其他语言中的数组有些类似,但是列表要强大得多。其中一个方面就是,列表没有固定类型的约束。例如,上个例子中接触到的列表,包含了三个完全不同类型的对象(一个整数、一个字符串,以及一个浮点数)。此外,列表没有固定大小,也就是说能够按照需要增加或减小列表大小,来响应其特定的操作:

操做

python的pop方法是按照下标索引来删除列表中的元素 而remove是按照列表中的值来删除元素~

1.先创建一个列表a,然后dir(a),就能够得到内置的所有列表可以进行的操作:'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'

想要了解每个函数的用法,就help(a.函数),下面的数据类型同

2.先创建一个字符串b,然后dir(b),就能够得到内置的所有字符串可以进行的操作:'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit',

'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'

3.先创建一个字典c,然后dir(c),就能够得到内置的所有字典可以进行的操作:'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'

操作


Python核心数据类型的一个优秀的特性就是它们支持任意的嵌套。

能够以任意的组合对其进行嵌套,并可以多个层次进行嵌套(例如,能够让一个列表包含一个字典,并在这个字典中包含另一个列表等)。

这种特性的一个直接的应用就是实现矩阵,或者Python中的“多维数组”。

一个嵌套列表的列表能够完成这个基本的操作:

可以展开循环列表


列表解析

处理序列的操作和列表的方法中,Python还包括了一个更高级的操作,称作列表解析表达式(list comprehension expression),从而提供了一种处理像矩阵这样结构的强大工具。例如,假设我们需要从列举的矩阵中提取出第二列。因为矩阵是按照行进行存储的,所以通过简单的索引即可获取行,使用列表解析可以同样简单地获得列。

>>> col2 = [row[1] for row in M]         # Collect the items in column 2

>>> col2

[2,5,8]

>>> M                                    # The matrix is unchanged

[[1,2,3],[4,5,6],[7,8,9]]


列表解析源自集合的概念。

它是一种通过对序列中的每一项运行一个表达式来创建一个新列表的方法,每次一个,从左至右。

列表解析是编写在方括号中的(提醒你在创建列表这个事实),并且由使用了同一个变量名的(这里是row)表达式和循环结构组成


已经显露出Python许多特性了,可变对象与不可变对象,通用序列操作与类型特定方法,分片(slice),嵌套,列表解析表达式(list comprehension expression)。

由左至右:中括号,循环结构中的元素构成的表达式,循环结构,循环结构中的元素构成的条件语句。

更完整的形式:

新列表 = [表达式 for 每个元素 in 可迭代集合 if 条件]


之前的这个列表解析表达基本上就是它字面上所讲的:“把矩阵M的每个row中的row[1],放在一个新的列表中”

col2 = [row[1] for row in M] 。

其结果就是一个包含了矩阵的第二列的新列表。实际应用中的列表解析可以更复杂:

>>> [row[1] + 1 for row in M]                # Add 1 to each item in column 2

[3,6,9]

>>> [row[1] for row in M if row[1] % 2 == 0] # Filter out odd items

[2,8]

例如,这里的第一个操作,把它搜集到的每一个元素都加了1,第二个使用了一个if条件语句,通过使用%求余表达式(取余数)过滤了结果中的奇数。列表解析创建了新的列表作为结果,但是能够在任何可迭代的对象上进行迭代。例如,这里我们将会使用列表解析去步进坐标的一个硬编码列表和一个字符串:

>>> diag = [M[i][i] for i in [0,1,2]]      # Collect a diagonal from matrix

>>> diag

[1,5,9]

>>> doubles = [c * 2 for c in 'spam']        # Repeat characters in a string

>>> doubles

['ss','pp','aa','mm']

(0)

相关推荐

  • Python函数的参数是如何工作的?

    https://m.toutiao.com/is/Jwaod7L/ 我们先探讨在Python中如何将参数传递给函数的相关细节,然后回顾与这些概念相关的良好软件工程实践的一般理论. 通过了解Python ...

  • Python 学习手册第 4 版(附下载)

    如果有人问学习Python有什么书籍可以推荐,那么<Python 学习手册>再合适不过了.这本书的豆瓣评分高达 7.9 .非常适合初学者. 书籍简介 Python是一种简单的.解释型的.交 ...

  • Python学习手册(第4版).3

    建议:如果想要在IDLE的主窗口中重复前一条命令,可以使用Alt-P组合键回滚,找到命令行的历史记录,并用Alt-N向前寻找(在Mac上,可以试试使用Ctrl-P和Ctrl-N).之前的命令可以重新调 ...

  • Python学习手册(第4版).2

    先说坑,看懂为什么前面那么多没有运行出来吗? 这个是一段代码 原因很简单,这个代码是在缓存区呢,得Ctrl+S 平时是这样运行,其实代码直接从缓存区到右边得执行区.文本文件并不保存 重定向也正常~ 在 ...

  • Python学习手册(第4版).1

    装饰器就是一个给对象添加额外功能的函数,其本质是函数.它的基本构造:高阶函数+函数嵌套+闭包. 装饰器 即在代码运行期间动态增加功能的方式. 3大条件: 1. 函数可作为对象,赋值给变量,也就是函数可 ...

  • Python学习手册(第4版).5

    map是对原数组的加工,filter对原数组的过滤.用法相同接受一个函数和列表. 括号中的解析语法也可以用来创建产生所需结果的生成器(例如,内置的sum函数,按一种顺序汇总各项): >>& ...

  • 听歌学地理 地理歌曲第四课《地形学习手册》版《青春修炼手册》

    听歌学地理 地理歌曲第四课《地形学习手册》版《青春修炼手册》

  • 新修订!《企业员工反三违手册(2021版)》,推荐学习!

    重要提醒 所有资料均有配套原版文件 扫描文末底部二维码入群可获取 点击链接: 实用!全10册<安全知识手册汇编>直接打印.直接用! [全套]2021安全生产月宣传视频.海报.手册.培训! ...

  • 可悲,副主任违章作业0.1秒当场死亡!《企业员工反三违手册(2020版)》,推荐学习!

    ▼ ABC安全防失联号-急事大观 培训大典 预案大典 制度大典 楼上的按钮里干货不一般,最少成百甚至上千! 正文 ▼    点击链接获取: 800+安全资料免费无条件领取! 1000+安全视频快速查询 ...

  • 最新《企业员工反三违手册(2020版)》,推荐学习!

    重要提醒 所有资料均有配套原版文件 扫描文末底部二维码入群可获取 违章操作等于自杀, 违章指挥等于杀人, 违章不纠等于帮凶, 在岗一分钟, 安全六十秒! 在工作之前一定要三问: 一是:问问自己这样做安 ...