**
列表基础
**
一、序列
(一)基本概念
-
序列是Python中最基本的一种数据结构。
-
序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(即索引)并且序列中的数据会按照添加的顺序来分配索引。
-
数据结构指计算机中数据存储的方式。
- 例如:有一个字符串为‘abcd’,在计算机存储时,字符串是以序列的方式进行存储的。除了有特定的id、类型type以及值value之外;这个字符串里面的每个字母都有对应的索引值。
- 如下图所示,字符串‘abcd’,其中每个字母分别对应一个索引值,如果是从左往右(正序),abcd分别对应0、1、2、3的索引值。若从右往左(逆序),abcd则分别对应-1、-2、-3、-4这些索引值,也就是有一个位置。
- 例如:有一个字符串为‘abcd’,在计算机存储时,字符串是以序列的方式进行存储的。除了有特定的id、类型type以及值value之外;这个字符串里面的每个字母都有对应的索引值。
也就是说,字符串是以一定顺序的序列进行存储的,并有固定的索引值,这就是字符串可以通过索引值来截取的原因。 |
---|
(二)序列的分类
- 可变序列(序列中的元素可以改变):例如 列表(list)
- 不可变序列(序列中的元素不能改变):例如 字符串(str)和元组(tuple)
- 例如·:以下列表1,这个列表的每个元素都可以进行增删改查的操作。(下面会说到这些基本操作)
-list1=[1,2,3,4,5,[a,b]]
而对于字符串来说,里面的元素不能进行增加或者删除这些操作,除非是通过字符串的截取方式来重新获取一个变量。 |
---|
二、 列表
(一)列表概念
- 列表是Python中的一个对象(在Python中万物皆对象)
- 列表的作用:
- 列表中可以保存多个有序的数据
- 列表是用来存储对象的对象(通俗理解为:大屋子里面装着另一个小屋子)
(二)列表的使用
1. 列表的创建
(1)使用中括号[ ]:lst1 = [1,2,3,4]
(2)使用 list() 这个函数:
list(range(5)) >>>>输出结果:[0, 1, 2, 3, 4]
需要注意的是,使用list( ) 函数时,创建数字列表时,得使用range()等函数一起使用,不能在括号里面直接输入数字,否则会报错。 不过用 list()创建字符串时,是可以直接在括号里面输入字符串即可创建。 |
---|
2. 列表的切片
- (1)切片的原理:切片是指从现有列表中获得一个子列表。
即切片切出来的是一个列表,而不是元素。 |
---|
- (2)切片语法:[开始位置 : 结束位置 : 步长]
- ①通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素。(即左闭右开,可以取开头、不可取结尾)
- ②起始位置和结束位置的索引可以不写:
- 如果省略结束位置,则会从当前的开始位置一直截取到最后。
- 如果省略开始位置,则会从第一个元素截取到结束的元素,但是不包括结束的元素。
- 如果开始位置和结束位置都省略,则会从第一个元素开始截取到最后一个元素。
- ③步长:指元素之间的间距,当省略不写时,默认为1。
- 步长绝对值最小值是为1,不能为0
- 它的正负代表的是方向,即正的代表从左到右进行切片,负的则代表从右到左进行切片。
下面是切片的例子:
(三)列表的通用操作
1. 加号+ 和 乘号*
- 加号+ 可以将两个列表拼接成一个列表
lst1 = ["a"]
lst2 = [1,2,3,4]
lst3 = lst1+lst2
print(lst3)
>>>>输出结果:['a', 1, 2, 3, 4]
- 乘号* 可以将列表重复指定的次数 (注意2个列表不能够做乘法,要和整数做乘法运算)。
lst5=['a','b','李华']*3
print(lst5)
>>>>>输出结果:
>['a', 'b', '李华', 'a', 'b', '李华', 'a', 'b', '李华']
2. in 和 not in
-
in用来检查指定元素是否在列表当中
-
not in 用来检查指定元素是否不在列表当中
-
返回结果是True或False这两个布尔值中的一个
lst6 = ['小爱同学','小米','a','x']
'x' in lst6
>>>输出结果:True
'a' not