列表
1.列表的创建
为什么需要列表呢?
-
变量可以存储一个元素,而列表是一个“大容器”,可以存储N多个元素,程序可以方便地对这些数据进行整体操作。
-
列表相当于其他语言中的数据。
-
列表示意图
列表的创建方式
- 使用中括号[],元素之间使用英文的逗号进行分割
- 使用内置函数list()
创建列表第一种方式,使用中括号:
lst=['hello','girl',20]
print(lst)
输出结果:[‘hello’,‘girl’,20]
创建列表第二种方式,使用内置函数list():
lst=(['hello','girl',20])
print(lst)
输出结果:[‘hello’,‘girl’,20]
列表的特点:
2.列表的查询操作
如果我们要进行列表的查询操作,首先要明白列表元素相对应的索引。
如图,
像大多数其他编程语言一样,Python的索引从头开始访问时,从0开始,到N-1结束,
从末尾开始时,最后一个元素的索引为-1,直至第一个元素的索引为-N
如列表lst=[10,20,30,40]
其中10的正向索引为0,反向索引为-4
30的正向索引为2,反向索引为-2
a.单个元素的查询
(图片转载网络)
lst=['a','hello',4,1]
print(lst.index('a'))
输出:0
而0正好是列表中元素’a’的索引
说明查列表中存在N个相同元素,只返回相同元素中的大体个元素的索引。
获取索引为N的元素:
lst=['a','hello',4,1]
print(lst[0])
print(lst[2])
输出:‘a’
4
如果查询的元素在列表中不存在,则会抛出ValueError!
b.多个元素的查询
-
语法格式
列表名[start:stop:step]
lst=[10,20,30,40,50]
#start为1,stop为3,步长为1,表示从索引为1的元素开始,到索引为3的元素结束(不包括此元素),步长为1
print(lst[1:3:1])
输出:20,30,
当我们未标明步长的数值时,默认步长为1
lst=[10,20,30,40,50]
print(lst[0:3])
输出:10,20,30
当我们未写起始值时,默认从索引0开始
lst=[10,20,30,40,50]
print(lst[:4:2])
输出:10,30
当我们未写末尾值时,默认到末尾
lst=[10,20,30,40,50]
print(lst[1::2])
输出:20,40
当步长为负数时,
lst=[10,20,30,40,50]
print([lst[::-1]])
输出:50,40,30,20,10
c.判断指定元素在列表中是否存在
3.列表元素的增加操作
(图片转载网络)
append()
lst=[4,5,6]
lst.append(100)
print(lst)
输出:4,5,6,100
增加之后并没有创建新的列表对象。
extend()
lst=[4,5,6]
lst2=[1,2]
lst.extend(lst2)
print(lst)
输出:4,5,6,1,2
insert()
lst=[4,5,6]
lst.insert(1,90)
#其中的1表示在索引为1的位置上添加一个元素
print(lst)
输出:4,90,5,6
切片
lst=[10,20,30,40,50]
lst2=[True,'hello']
lst[1:]=lst2
print(lst)
输出:10,True,‘hello’
4.列表元素的删除操作
(图片转载网络)
remove()
lst=[1,2,3,4,5]
lst.remove(3)
print(lst)
输出:[1,2,4,5]
如果移除列表元素中不存在的元素,
lst=[1,2,3,4,5]
lst.remove(10)
print(lst)
输出:ValueError
pop()
lst=[1,2,3,4,5]
lst.pop(1)
print(lst)
输出:[1,3,4,5]
当我们不指定索引时,删除列表最后一个元素
lst=[1,2,3,4,5]
lst.pop()
print(lst)
输出:[1,2,3,4]
切片
lst=[1,2,3,4,5]
lst2=lst[1:3]
#不包括索引3
print(lst)
输出:[1,4,5]
clear()
lst=[1,2,3,4,5]
lst.clear()
print(lst)
输出:[]
del
lst=[1,2,3,4,5]
del.lst
print(lst)
输出:Name Error
5.列表元素的修改
- 为指定索引的元素赋予一个新值
lst=[10,20,30,40]
#一次修改一个值
lst[2]=100
print(lst)
输出:[10,20,100,40]
- 为指定的切片赋予一个新值
lst=[10,20,30,40]
lst[1:3]=[300,450,240]
print(lst)
输出:[10,300,450,240]
6.列表元素的排序操作
-
两种方式
-
1.调用sort( )方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True进行降序排序
-
2.调用内置函数sorted( ),可以指定reverse=True进行降序排序,原列表不会发生改变
1.
升序
-
lst=[1,4,2,7,3]
lst.sort()
print(lst)
输出:[1,2,3,4,7]
降序
lst=[1,4,2,7,3]
lst.sort(reverse=True)
print(lst)
输出:[7,4,3,2,1]
如果指定reverse=True进行降序排序,那么指定reverse=False就是进行升序排序
2.
升序
lst=[2,4,7,6,1]
lst2=sorted(lst)
print(lst2)
输出:[1,2,4,6,7]
降序
lst=[2,4,7,6,1]
lst2=sorted(reverse=True)
print(lst2)
输出:[7,6,4,2,1]
7.列表生成式
-
语法格式
lst=[i for i in range(1,10)]
lst=[i for i in range(1,10)]
print(lst)
输出:[1,2,3,4,5,6,7,8,9]
lst=[i*i,for i in range(1,10)]
print(lst)
输出:[1,4,9,16,25,36,49,64,81]
那如果我们想要得到[2,4,6,8,10]这样的列表应该怎么整呢?
lst=[i*2 for i in range(1,6)]
#记住,是(1,6),因为这是不包含6的
print(lst)
输出:[2,4,6,8,10]