python动态序列比对 python序列比较大小_赋值

 

 

 

一、序列:包含若干个元素, 元素有序排列, 可以通过下标访问到一个或者多个元素. 这样的对象, Python中统一称为序列

 

 

(1)标准类型操作符

 

 

 

a、序列比较大小

 

 

字符串或元组或列表,比较是比较他们之中的每一个元素,每一个元素相等,则是相等的;任意有一个元素不相等,则是不相等的。【大于,小于是从第一个元素开始比较,找到第一个不相同的元素,判断这两个元素的大小,则这两个元素的大小决定了整个tuple或者list的大小】

python动态序列比对 python序列比较大小_python动态序列比对_02

 

python动态序列比对 python序列比较大小_字符串_03

 

 

b、少部分序列中保存的元素不支持标准类型操作符

 

 

ba、支持的:

python动态序列比对 python序列比较大小_赋值_04

python动态序列比对 python序列比较大小_python动态序列比对_05

 

bb、不支持的,少部分特例:

 

 

(2)序列类型操作符

 

A、连接操作符(+): 把两个相同类型的序列进行行连接.【列表/元组通过+可以拼接】

 

python动态序列比对 python序列比较大小_元组_06

 

python动态序列比对 python序列比较大小_字符串_07

 

B、列表/元组通过*可以重复

 

python动态序列比对 python序列比较大小_赋值_08

 

python动态序列比对 python序列比较大小_python动态序列比对_09

 

 

C、查看一个对象在不在序列里,通过关键字in和not in【对于一个字符串,可以查看字符串里面是否包含一个子字符串(想要查的字符串是不是指定字符串的子集)】

ca、

 

python动态序列比对 python序列比较大小_python动态序列比对_10

 

python动态序列比对 python序列比较大小_字符串_11

 

 

cb、查看数字在不在列表里

python动态序列比对 python序列比较大小_元组_12

 

python动态序列比对 python序列比较大小_python动态序列比对_13

 

说明了,一个数字在list中;list的子集[]不在list中。

 

 

但是如果原来的list中包含子list对象,则可以查询[]:

python动态序列比对 python序列比较大小_python动态序列比对_14

 

python动态序列比对 python序列比较大小_赋值_15

 

1、序列的切片操作

 

字符串/列表/元组都可以通过下标取值,不能去取长度之外的值;

 

python动态序列比对 python序列比较大小_赋值_16

 

python动态序列比对 python序列比较大小_字符串_17

 

 

(1)切片操作,填写两个数,构成前闭后开区间,对字符串取其子集[:]。步长为第三个参数,步长大于0,从前往后取;步长小于0,从后往前取,第一个参数代表了序列的最后一位,第二个参数代表了第-1位数。

 

 

a、从前往后打印:

python动态序列比对 python序列比较大小_字符串_18

python动态序列比对 python序列比较大小_python动态序列比对_19

 

 

b、从后往前打印,必须保证第一个参数在第二个参数后面,才能实现逆推:

python动态序列比对 python序列比较大小_元组_20

 

python动态序列比对 python序列比较大小_python动态序列比对_21

 

2、序列内建函数

 

(1)max:返回序列的最大值

 

         min:返回序列的最小值

 

python动态序列比对 python序列比较大小_元组_22

 

python动态序列比对 python序列比较大小_字符串_23

 

 

 

同时也可以传字符串中的最大最小值,单个的字符在字符串中叫做元素,保存方式类似于数组。但是python没有字符类型

 

python动态序列比对 python序列比较大小_赋值_24

 

python动态序列比对 python序列比较大小_赋值_25

 

虽然可以比较字符串的大小,但是python中没有字符类型,其类型仍然是字符串类型

python动态序列比对 python序列比较大小_字符串_26

python动态序列比对 python序列比较大小_字符串_27

 

(2)sum:求和(打印类型时,如实反映加起来之和的类型,如果加起来是浮点型,则返回浮点型)

 

python动态序列比对 python序列比较大小_元组_28

python动态序列比对 python序列比较大小_赋值_29

 

python动态序列比对 python序列比较大小_元组_30

python动态序列比对 python序列比较大小_赋值_31

 

不能给字符串求和

 

python动态序列比对 python序列比较大小_字符串_32

python动态序列比对 python序列比较大小_赋值_33

 

(3)enumerate遍历序列,返回下标值

 

python动态序列比对 python序列比较大小_python动态序列比对_34

python动态序列比对 python序列比较大小_字符串_35

 

 

结果说明:返回时返回的元组,前面的表示下标,后面的表示值。

用两个变量接收;

 

python动态序列比对 python序列比较大小_字符串_36

python动态序列比对 python序列比较大小_赋值_37

 

可以使用下划线占位,只显示下标或者是值

 

也可以Find通过函数,找到下标【Find函数,查找指定元素在序列里的下标】

 

python动态序列比对 python序列比较大小_python动态序列比对_38

python动态序列比对 python序列比较大小_赋值_39

 

(4)zip函数,进行行列互换

 

python动态序列比对 python序列比较大小_赋值_40

 

a、把list转换后变成了元组

 

python动态序列比对 python序列比较大小_字符串_41

python动态序列比对 python序列比较大小_元组_42

 

 

b、元素数不同:取最小list中元素的个数

 

python动态序列比对 python序列比较大小_python动态序列比对_43

python动态序列比对 python序列比较大小_python动态序列比对_44

 

c、构造字典

 

 

python动态序列比对 python序列比较大小_元组_45

python动态序列比对 python序列比较大小_python动态序列比对_46

转换成dict

 

python动态序列比对 python序列比较大小_python动态序列比对_47

python动态序列比对 python序列比较大小_字符串_48

 

使用dict时,必须保证里面的每一个元素的键值对是一一对应的,不能出现单个的元素(单个的元素不符合需求)。dict函数避免了键值对不成对出现的情况,转换出的每一个元素都包含两个。dict函数一旦有一个元素不是键值对就会报错。

 

二、字符串:

 

1、三种引号的区别:

 

a、Python中单引号(')字符串和双引号(")字符串是等价的. 而不像有些编程语言(比如Linux Shell), 转义字符只在双引号中有效.

 

b、Python中使用 "原始字符串" 来完成这样的功能

 

c、三引号('''/""")相比于前两种的区别是, 可以跨多行.

 

 

2、字符串是不可变对象:

(1)不能修改字符串,只能创建新的字符串

 

python动态序列比对 python序列比较大小_元组_49

python动态序列比对 python序列比较大小_python动态序列比对_50

 

(2)实现将a替换进字符串的功能的正确方式

 

python动态序列比对 python序列比较大小_字符串_51

python动态序列比对 python序列比较大小_元组_52

 

这种方式也是在生成新的字符串,而不是改字符串的值

 

3、字符串的格式化:%代表传的值的类型

 

python动态序列比对 python序列比较大小_字符串_53

python动态序列比对 python序列比较大小_赋值_54

 

 

4、原始字符串(raw strings):不希望转义字符中的字符被转义,希望使用原始字符串[在字符串的前面加上r]

 

python动态序列比对 python序列比较大小_赋值_55

python动态序列比对 python序列比较大小_python动态序列比对_56

 

 

5、repr()函数,接收字符串转换为字符串

 

python动态序列比对 python序列比较大小_元组_57

python动态序列比对 python序列比较大小_赋值_58

 

虽然str和repr的精度都有限制,但是str的精度比repr的精度小

 

python动态序列比对 python序列比较大小_元组_59

 

python动态序列比对 python序列比较大小_字符串_60

 

 

repr读完数据后更多的是给解释器去读的,打印出的字符串被‘’引起来;而str打印的字符串是直接给大家看的

python动态序列比对 python序列比较大小_字符串_61

python动态序列比对 python序列比较大小_python动态序列比对_62

 

6、join拼接函数

 

a、拼接式用法:

 

python动态序列比对 python序列比较大小_python动态序列比对_63

python动态序列比对 python序列比较大小_元组_64

 

b、不拼接,只是连接起来

 

c、只是把字符串串起来,不使用下划线

 

python动态序列比对 python序列比较大小_元组_65

python动态序列比对 python序列比较大小_元组_66

 

 

 

7、分割函数split()

以空格为单位,切分为list

python动态序列比对 python序列比较大小_元组_67

python动态序列比对 python序列比较大小_赋值_68

 

以字符串为分割切分

 

python动态序列比对 python序列比较大小_赋值_69

python动态序列比对 python序列比较大小_字符串_70

 

8、判断字符串的开头和结尾startswith和endwith

 

python动态序列比对 python序列比较大小_python动态序列比对_71

python动态序列比对 python序列比较大小_元组_72

 

9、strip()去掉字符串开头和结尾的空格和制表符

 

python动态序列比对 python序列比较大小_字符串_73

python动态序列比对 python序列比较大小_元组_74

 

10、左对齐/右对齐/中间对齐 ljust/rjust/center

 

保证左对齐,右对齐或中对齐的情况下,如果位数不够,则进行扩充

 

python动态序列比对 python序列比较大小_python动态序列比对_75

python动态序列比对 python序列比较大小_字符串_76

 

11、查找字符串find()方法:接收字符串,查找字符串在目标字符串中的位置。查找字符串第一个元素在字符串中的下标;不存在的情况下会返回-1.

 

python动态序列比对 python序列比较大小_字符串_77

python动态序列比对 python序列比较大小_赋值_78

 

 

12、替换函数:replace():第一个参数为要替换的子集,第二个参数为拿什么去替换

字符串是不可变对象,替换实际上是产生新的字符串

 

python动态序列比对 python序列比较大小_字符串_79

python动态序列比对 python序列比较大小_元组_80

 

三、列表

 

1、python中没有结束字符\0

 

2、append: 追加元素(在列的最后追加元素)

 

python动态序列比对 python序列比较大小_赋值_81

python动态序列比对 python序列比较大小_赋值_82

 

 

3、remove 删除元素,参数是要删除元素的值

 

python动态序列比对 python序列比较大小_python动态序列比对_83

python动态序列比对 python序列比较大小_元组_84

 

4、del是一个关键字,删除指定下标的元素

 

python动态序列比对 python序列比较大小_字符串_85

python动态序列比对 python序列比较大小_元组_86

 

4、extend()拼接两个序列 

 

python动态序列比对 python序列比较大小_元组_87

python动态序列比对 python序列比较大小_元组_88

 

a、查看id有没有变化

 

python动态序列比对 python序列比较大小_元组_89

python动态序列比对 python序列比较大小_赋值_90

 

结果没有变化,说明相当于+=,没有生成新的对象

 

b、使用+,打印id,查看地址有没有发生变化

 

python动态序列比对 python序列比较大小_python动态序列比对_91

python动态序列比对 python序列比较大小_字符串_92

 

结果中地址发生了改变,说明生成了新的对象

 

c、列表中的sort()函数:跟在某个可迭代对象后面,是一种排序的方法。

 

python动态序列比对 python序列比较大小_元组_93

python动态序列比对 python序列比较大小_赋值_94

 

sorted函数创建了一个新的列表(产生了一个新的有序的序列),sort函数是基于列表本身进行的排序(类似归并排序的衍生算法)

 

5、pop()函数:删除并返回指定位置的对象,默认是最后一个对象。传位置就删除指定位置处的元素

 

 

 

四、基于列表的堆栈(后进先出)

append()放入一个元素,pop()删除一个元素

 

python动态序列比对 python序列比较大小_字符串_95

python动态序列比对 python序列比较大小_元组_96

 

六、基于列表的队列(先进先出)

 

七、列表的深拷贝/浅拷贝

 

1、浅拷贝【拷贝之前的值改变,拷贝之后的值也会发生改变】【在内存中指向同样的一个东西】

 

python动态序列比对 python序列比较大小_元组_97

python动态序列比对 python序列比较大小_元组_98

 

 

打印的id相同,对象存在的基础上去引用相当于给对象贴标签,id不会发生改变。看似把a赋值给b,实际上a和b指向同一个东西,这就叫做浅拷贝。

 

python动态序列比对 python序列比较大小_元组_99

python动态序列比对 python序列比较大小_赋值_100

 

改变值,结果不会发生改变

python动态序列比对 python序列比较大小_赋值_101

python动态序列比对 python序列比较大小_元组_102

 

2、深拷贝:不是同一个id【深拷贝中一个对象的值改变了不会影响另一个对象】【前面值改变和后面的值没关系】 

 

python动态序列比对 python序列比较大小_元组_103

python动态序列比对 python序列比较大小_字符串_104

 

链式赋值,实际上是创建一个字符串的值,拿进去引用

 

python动态序列比对 python序列比较大小_python动态序列比对_105

python动态序列比对 python序列比较大小_赋值_106

 

链式赋值,不存在赋值之后,不能发生改变:

 

python动态序列比对 python序列比较大小_元组_107

python动态序列比对 python序列比较大小_元组_108

 

赋值不涉及深浅拷贝,只是在内存中创建一个值,并进行引用。创建列表对象时,才涉及深浅拷贝,直接赋值不涉及。

 

python动态序列比对 python序列比较大小_赋值_109

python动态序列比对 python序列比较大小_python动态序列比对_110