列表用来存储、表示数据,是可变的

1.创建列表

# 1.利用空的列表
a = []
print(type(a))

# 2.利用list()
b = list()
print(type(b))

# 3.创建并初始化
c = [1,2,3,4]
print(c)

# 4.在同一个列表里放不同类型的变量
d = [1,'hello',True,[1,2,3]]
print(d)

2.访问下标

  • 用到下标访问运算符[ ],下标从0开始
a = [1,2,3,4]
print(a[2]) # 3
  • 使用下标修改列表元素
a = [1,2,3,4]
a[2] = 100
print(a)   # [1,2,100,4]

3.获取列表长度

len():可以是列表、字符串、元组、字典、自定义的类

a = [1,2,3,4]
print(len(a))

# 下面两条语句等价,-1代表最后一个元素,-2表示倒数第二个元素……
print(a[len(a)-1])  # 4
print(a[-1])  # 4

4.列表的切片操作

  • 相当于得到子集,切片操作中,[ ]里面有两个数字,表示一段区间
a = [1,2,3,4]
print(a[1:3])   # 1表示开始区间的下标,3表示结束区间的坐标  [1,3)

# 省略边界
b = [1,2,3,4,5]
# 省略后边界,即从开始下标≥1一直到结束
print(b[1:])  # [2,3,4,5]

# 省略前边界,从开始到下标<2
c = [1,2,3,4]
print(c[:2])  # [1,2]

# 利用负数
d = [1,2,3,4]
print(d[:-1])  # [1,2,3]

# 前后边界都省略,即为列表
e = [1,2,3,4]
print(e[:])  # [1,2,3,4]

注意:切片操作是一个比较高效的操纵,取出列表中的一部分,不涉及”数据的拷贝“

  • 切片操作取定步长
a = [1,2,3,4,5,6,7,8,9,0]
print(a[::1]) # 1即为步长   
print(a[::2]) # [1,3,5,7,9]

print(a[1:-1:2])  # [2,4,6,8]  到0结束,0为开区间范围

# 步长为负数,从后往前取
b = [1,2,3,4,5,6,7,8,9,0]
print(b[::-2])   # [0,8,6,4,2]

注意:切片中的范围超出下标之后,不会出现异常,只会尽可能在范围内取到

5.列表的遍历

  • 使用for循环遍历
a = [1,2,3,4]
for elem in a:    # elem代表列表里的每一个元素
	print(elem)
  • 使用for循环,下标方式遍历
a = [1,2,3,4]
for i in range(0,len(a)):
	print(a[i])
  • while遍历
a = [1,2,3,4,5]
i = 0
while i < len(1):
	print(a[i])
	i += 1

6.列表的插入

  • append往列表末尾新增元素
a = [1,2,3,4]
a.append(5)
a.append('hello')
print(a)    # [1,2,3,4,5,'hello']

注意:要搭配对象(即变量)来使用的函数,也叫做“方法”

  • insert在任意位置插入
a = [1,2,3,4]
a.insert(1,'hello')   # 在下标为1的地方插入hello

print(a)   # [1,'hello',2,3,4]

a.insert(100,'world')  # 下标超过列表长度,直接在末尾插入
print(a)  # [1,'hello',2,3,4,'world']

7.列表的查询

  • in:判定元素是否在列表中存在
a = [1,2,3,4]
print(1 in a)   #True
print(10 in a)  # False
print(2 not in a)   # False
  • 使用index来判定当前元素在列表中的位置,得到一个下标
a = [1,2,3,4]
print(a.index(2))   # 输出1:表示2存在且下标为1
print(a.index(10))   # 出现抛异常

8.列表的元素删除

  • pop删除列表最末尾元素
a = [1,2,3,4]
a.pop()
print(a)   # [1,2,3]
  • pop删除任意位置元素
a = [1,2,3,4]
a.pop(2)   # 删除下标为2的元素
print(a)  # [1,2,4]
  • remove按照值删除元素
a = [1,2,3,4,'aa','bb']
a.remove('aa')
print(a)  # [1,2,3,4,'bb']

9.列表的拼接

  • 使用+对两个列表进行拼接
a = [1,2]
b = [3,4]
c = a + b
print(c)
  • 使用extend来进行拼接:后一个列表的内容拼接到前一个列表
a = [1,2]
b = [3,4]
a.extend(b)   # extend没有返回值
print(a)   # [1,2,3,4]
  • 使用+=来进行拼接
a = [1,2]
b = [3,4]
a += b   # 等价于a = a + b   :创建更大的列表存a + b,释放原有的a,a+b再赋值给a
print(a)

10.列表的删除

a = [1,2,3,4]
del a[1]    # 删除下标为1 的元素
print(a)   # [1,3,4]
del a     # 删除整个列表
print(a)   # 报not defined异常

11.列表的其他方法

  • copy():复制列表
  • reverse() :逆转列表
  • sort():对列表进行排序
  • count():统计个数
l = [1, 2, 3, 2, 4, 2, 1]
print('原列表内容 => ', l)
t = l.copy()    # 等价于 t = [:]
print('copy列表内容 => ', t)   # [1,2,3,2,4,2,1]
print('统计值为2的元素个数 => ', l.count(2))  # 3
print('查找值为2的最小下标 => ', l.index(2))  # 1
l.reverse()
print('反转列表 => ', l)  
l.sort()
print('对列表排序 => ', l)