列表是Python以及其他语言中最常用到的数据结构之一,列表是可以存放任何数据,包括整型,浮点型,字符串,布尔型等等,Python中使用中括号[]来表示列表。
列表是由一组任意类型的值组合而成的序列,组成列表的值称为元素,每个元素之间用逗号隔开,具体示例如下:
1. 普通形式 l = [1,2,3,4,5] ---整型列表 l = ["a","b","c"] ---字符串列表 l = [True,False,1>2,5<6]---布尔列表 2. 混合列表 l = [1,2.5,"a",True] 3. 空列表 l = []
此处需注意,列表中的元素是可变的,这意味着可以向列表中添加、修改和删除元素。
此外,还可以通过list()函数创建列表,list()可以将元组或者字符串转化为列表,如例所示。
list1 = list(range(1, 5, 2)) list2 = list("Python")
添加元素的方法常用的有以下3个
append() #向列表中添加对象,并添加到末尾 extend(可迭代对象) #将可迭代对象中的数据分别添加到列表中,并添加到末尾 insert(下标,对象) #将指定下标位置添加到对象
统一用法是:
变量.函数 变量. append(对象)
例子:讲列表[j]添加到另一个列表[n]中
n = [1, 2, 3, 4, 5] j = [6, 7, 8, 9, 10] n.extend(j) print(n) 运行结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
clear() #清空列表 pop() #删除下标指定的元素并返回它的值,如果没下标默认删除最后一个 remove(对象) #删除列表中指定对象
修改列表中的元素非常简单,只需索引需要修改的元素并对其赋新值即可,
l = [1, 2, 3, 4, 5] l[2]=6 print(l) 输出[1, 2, 6, 4, 5]
列表是有下标的,并且下标从0开始,元素是指列表中每个数据,例如l = [5,4,3,2,1] 里面有5个元素,但5的下标为0,1的下标为4,如果反向索引5的下标就是-5,1的下标为-1.
n = [1, 2, 3, 4, 5] print(n[0]) #输出1 print(n[-5]) #输出1
列表切片,顾名思义就是把1个列表切分为多个列表
变量[起始下标:结束下标] #结束下标取不到 n = [1, 2, 3, 4, 5] print(l[0:3]) #结束下标3代表到下标为3的元素时终止输出 输出:[1, 2, 3]
对列表进行切片时要注意以下几点:
1、如果下标从0开始可以省略不写,例如 n = l[:4]
2、如果结束下标取的是最后一个元素,可以省略不写,例如 n = l[3:]
3、如果列表中的元素都要,开始和结束下标都可以省略,例如 n = l[:]
4、n = l[:-1] 表示从0开始 - 到数二个元素
可以通while循环或for循环来实现列表的遍历,但while一般都会结合len()函数来配合完成
n = [1, 2, 3, 4, 5] i = len(n) #读取n列表的长度 j = 0 while j < i: print(n[j]) j+=1
for就相对简单一点,也是经常要使用到的内容
n = [1, 2, 3, 4, 5] for j in n: print(j)
列表之间进行比较,以相同下标进行比较,从小到大进行比较,如果值相同则比较下一组元素,如果不同直接出结果,例如:
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 下标/索引:0开始 l2 = [2, 3, 4, 6] print(l < l2) # True
逻辑运算符and not or 跟比较运算符相似,返回结果都是布尔值(True/False)。
拼接运算符是 + ,常用来进行两个列表拼接,例如:
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 下标/索引:0开始 l2 = [2, 3, 4, 6] print(l + l2) 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 3, 4, 6]
重复操作符为 * ,后面常跟数字,表示将列表里面的元素重复复制几遍,例如:
l2 = [2, 3, 4, 6] print(l2*2) 输出:[2, 3, 4, 6, 2, 3, 4, 6]
成员关系操作符主要有 in和not in,用来判断元素是否在列表中,返回结果是布尔值,例如:
l = [2, 3, 4, 6] print(5 not in l) #输出“5不在列表l中”这句话的真假 输出:True
冒泡排序是列表里面比较有名的排序方法之一,例如将列表[5,4,3,2,1]里面的所有元素用冒泡排序的思想进行从小到大排序。
l = [6, 5, 4, 3, 2, 1] for i in range(1, len(l)): # 1,5 #循环4大次 4 for j in range(len(l) - i): if l[j] > l[j + 1]: l[j], l[j + 1] = l[j + 1], l[j] print(l)