pythohn基础之序列(列表和元组)

序列

序列是一种数据结构,其中的元素带编号(编号从0开始)。列表、字符串和元组都属于序列,其中列表是可变的(你可修改其内容),而元组和字符串是不可变的(一旦创建,内容就是固定的)。序列都可以进行的操作包括索引、切片、相加、相乘和检查成员

一、 列表

1. 通用的列表操作

1.1 列表的创建

只要把逗号分隔的不同的数据项使用方括号括起来即可

空列表是使用不包含任何内容的两个方括号表示

如果要创建一个可包含10个元素的空列表(即表示还没有在列表中添加任何内容),

这种情况在可使用None(表示什么都没有)

 

1.2 列表的索引

列表可以使用下标索引来访问列表中的值

字符串就是由字符组成的序列。索引0指向第一个元素,-1指向最后一个元素

1.3 切片

除了使用索引来访问单个元素外,还可以使用切片来访问特定范围内的元素。其中第一个索引号是包含第一个元素的编号(即第一个索引指定的元素包含在切片内),但第二个索引号是切片后余下的第一个元素的编号(第二个索引指定的元素不包含在切片内),第三个索引号为步长,是指当取出前一项时,移动多少个元素去取下一个值(若没有这一项,默认为1),也可以使用负数来表示列表

1.4 列表的相加和相乘

可以使用“+”操作符来拼接序列(不能拼接列表和字符串一般而言,不能拼接不同类型的序列)

可以使用“*”操作符来创建一个新序列

1.5 列表的成员资格

要检查特定的值是否包含在序列中,可使用运算符in。它检查是否满足指定的条件,并返回相应的值:满足时返回True,不满足时返回False。这样的运算符称为布尔运算符,而前述真值称为布尔值

1.6 列表的嵌套

使用嵌套列表即可在列表里创建其他列表

2. 列表的函数

2.1 len()

返回序列包含的元素个数

2.2 max()/min()

返回序列中最大/最小的元素

2.3 list()

将序列转换为列表,如果参数是列表,就原封不动的地返回它;如果参数是字符串,也转换为列表

3. 列表的基本操作

3.1 修改列表

使用索引来给特定位置的元素赋值

3.2 删除元素

使用del()语句删除列表的元素,会改变列表的长度

3.3 给切片赋值

使用切片可以同时给多个元素赋值。通过使用切片赋值,可以将列表替换为长度与其不同的列表

使用切片赋值话可以在不替换原有元素的情况下插入新元素

使用切片赋值还可以删除切片

4. 列表方法

4.1 append()

用于将一个对象附加到列表末尾append也就地修改列表。这意味着它不会返回修改后的新列表,而是直接修改旧列表

4.2 clear()

就地清空列表的内容

4.3 copy()

用于复制列表。常规复制只是将另一个名称关联到列表

要让a和b指向不同的列表,就必须将b关联到a的副本

4.4 count()

计算指定的元素在列表中出现的次数

4.5 extend()

能同时将多个值附加到列表末尾,可使用一个列表来扩展另一个列表

这看起来类似于拼接,但有一个重要差别,那就是将修改被扩展的列表(这里是a)。常规拼接中,返回一个全新的列表

4.6 index()

在列表中查找制定你元素第一次出现的索引

4.7 insert()

用于将一个元素插入元素

4.8 pop()

从列表中删除一个元素(默认为最后一个元素),并返回这一元素。pop是唯一既修改列表又返回一个非None值的列表方法

4.9 remove()

用于删除第一个为指定值的元素,就地修改且不返回值

4.10 reverse()

按相反的顺序排列列表中的元素,修改列表,但不返回任何值

如果要按相反的顺序迭代序列,可使用函数reversed()。这个函数不返回列表,而是返回一个迭代器,可使用list将返回的对象转换为列表

4.11 sort()

用于对列表就地排序。就地排序意味着对原来的列表进行修改,使其元素按顺序排列,而不是返回排序后的列表的副本,修改列表且不返回任何值

sort对需要排序后的列表副本并保留原始列表不变时,通常会遇到以下错误

为获取排序后的列表的副本,可使用函数sorted()

4.12 高级排序

sort(cmp=None, key=None, reverse=False) 

cmp

用于比较的函数,比较什么由key决定

key

参数key类似于参数cmp:可以将其设置为一个用于排序的函数。然而,不会直接使用这个函数来判断一个元素是否比另一个元素小,而是使用它来为每个元素创建一个键,再根据这些键对元素进行排序。因此,要根据长度对元素进行排序,可将参数key设置为函数len

reverse

对于另一个关键字参数reverse,只需将其指定为一个真值(TrueFalse,),以指出是否要按相反的顺序对列表进行排序

函数sorted也接受参数keyreverse

 

二、元组

元组是一种静态的或者说不可变的数据结构,里面的元素按照一定的顺序排列。与列表一样,元组也是序列,唯一的差别在于元组是不能修改的。列表用[]中括号括起,元组用圆括号括起

1. 通用的元组操作

1.1 元组的创建

只需在括号中添加元素,并使用逗号隔开即可(不加括号也可以)

空元组用两个不包含任何内容的圆括号表示

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用

1.2 元组的索引

元组可以使用下标索引来访问元组中的值(0表示第一个元素,-1表示最后一个元素)

1.3 元组的切片

切片通过构造一个索引号的范围可以同时获得元组中的多个值。第一个元素表示切片开始的地方(包含此索引号),第二个元素表示切片结束的地方(不包含此索引号),第三个元素表示步长,是指当取出前一项时,移动多少个元素去取下一个值(若没有这一项,默认为1),也可使用负数形式的索引号来访问元组

1.4 元组的连接和复制

操作符可以被用来连接或复制元组。连接通过“+”来完成,复制通过“*”来完成

“+”操作符可以将两个或者多个元组连接在一起

“*”操作符可以用来复制元组

2. 元组的函数

1.1 len()

用来计算元组的长度

1.2 max()/min()

当处理数值型的元组时(包括整数和浮点数),可以使用max()和min()函数去找到某一特定元组的最大值和最小值

1.3 tuple()

将一个序列作为参数,并将其转换为元组。如果参数已经是元组,就原封不动地返回它。

 

猜你喜欢

转载自blog.csdn.net/weixin_43265596/article/details/86662235
今日推荐