最近准备系统学习python,为了以后能及时查找到,先记录下.

先说下啥叫序列,之前在用,感觉这个概念有个模糊,今天特意看了下,序列是python中最基本的数据结构,序列中的每一个元素都被分配一个序号,即元素的位置,也成为索引。类似于“数组”。python中包含6种内建序列,即列表,元组,字符串,Unicode字符串,buffer对象和xrange对象。

1.列表的内容是可变的(相对于元组),一般使用“[]”和“,”,如 M= [1,2,3,4]

2.列表元素操作:

(1)元素赋值:可以类似于数组赋值进行列表赋值,可以对一个列表中的元素赋不同类型的值,但不能为一个不存在的元素的位置进行赋值。

列表在python中术语无序数列吗_python

(2)增加元素:可使用list.append(obj),list代表列表,obj代表需要添加到list列表末尾的对象。

列表在python中术语无序数列吗_赋值_02

(3)删除元素:del M[0]

列表在python中术语无序数列吗_数据结构与算法_03

(4)分片赋值:常使用list()函数

a.若M=list(‘今天天气多云’),['今','天','天','天','气','多','云'],list()函数可以直接将字符串转换为列表。

列表在python中术语无序数列吗_字符串_04

b.若M=list('ae'),M[1:]=list('bcd'),list()函数可以使用与原序列不等长的序列将分片替换。

列表在python中术语无序数列吗_数据结构与算法_05

c.若M=list('今天天气不错'),M[2:2]=list('安徽省'),list函数可以在不替换任何原有元素的情况下在任意位置插入新元素。

列表在python中术语无序数列吗_数据结构与算法_06

d.可利用分片赋值进行元素删除,将准备删除的元素置为空,可对一个序列中任意位置的元素进行删除。

列表在python中术语无序数列吗_python_07

3.列表是可嵌套的。

列表在python中术语无序数列吗_python_08

4.列表的方法

(1)list.append(obj),是在列表的末尾添加新对象

(2)list.count(obj),用于统计某个元素在列表中出现的次数,list代表列表,obj代表列表中统计的对象

列表在python中术语无序数列吗_数据结构与算法_09

(3)list.extend(seq),list代表列表,seq代表元素列表

列表在python中术语无序数列吗_列表在python中术语无序数列吗_10

 与序列相加的主要区别:extend()方法修改了被扩展的序列,原始的连接操作会返回一个全新的列表

列表在python中术语无序数列吗_字符串_11

(4)list.index(obj),用于从列表中找出某个值第一个匹配项的索引位置。

列表在python中术语无序数列吗_字符串_12

(5)list.insert(index,obj),list代表是列表,index代表对象obj需要插入的索引位置,obj代表是插入列表中的对象。用于从列表中找出某个值第一个匹配项的索引位置。

列表在python中术语无序数列吗_数据结构与算法_13

(分片赋值也可实现)

列表在python中术语无序数列吗_数据结构与算法_14

(6)list.pop(obj=list[-1]),list代表是列表,obj为可选择的参数,代表要移除列表元素的对象。用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

a.list.pop(),不传参数,默认移除最后一个元素

列表在python中术语无序数列吗_python_15

b.list.pop(2),删除a[2]元素

列表在python中术语无序数列吗_数据结构与算法_16

pop方法是唯一一个既能修改列表又能方法元素值(除了None)的列表方法。

注:pop方法可实现一种常见的数据结构—栈,类似于堆放盘子,LIFO(last in firsr out),后进先出。入栈(push),python没有入栈方法,但可以使用append方法替代,出栈(pop)。

(7)list.remove(obj),list代表是列表,obj为列表中要移除的对象。用于移除列表中某个值的第一个匹配项。是一个没有返回值的原位置元素变更方法。

列表在python中术语无序数列吗_字符串_17

(8)list.reverse(),list代表是列表,该方法不需要传入参数。用于反向列表中的元素。是一个没有返回值的原位置元素变更方法。

列表在python中术语无序数列吗_列表在python中术语无序数列吗_18

(9)list.sort(func),list代表列表,func为可选参数,若指定参数,会使用该参数的方法进行排序。

列表在python中术语无序数列吗_python_19

对列表进行排序,且保持原列表排列顺序,先将原始列表使用切片方式进行赋值,如b = a[:]

列表在python中术语无序数列吗_列表在python中术语无序数列吗_20

(10)list.sorted(),直接获取原始列表副本进行排序


列表在python中术语无序数列吗_python_21

(11)list.clear(),list代表列表,不需要传入参数。用于清空列表。

列表在python中术语无序数列吗_python_22

(12)list.copy(),list代表列表,不需要传入参数。用于赋值列表,类似于a[:]

列表在python中术语无序数列吗_python_23

(13)高级排序,sort方法有两个可选参数,即key,reverse。

#len按字符串长度由短到长进行排序

列表在python中术语无序数列吗_数据结构与算法_24

#传入2个参数,按照字符串长度由长到短进行排序

列表在python中术语无序数列吗_赋值_25

#排序后逆序

列表在python中术语无序数列吗_字符串_26

 

 

 

2018/4/22