首先一个小知识:
a.print("num的类型是:",type(num)) #获取num的类型,用到type()函数
b.print("num的内存地址是:",id(num)) #获取num的地址,用到id()函数
一.最基本的数据结构是序列(列表,元组等)
在序列中的每个元素被分配一个序号,即元素的位置,也称为索引。序列用来存储一系列的数据
二.列表
1. 列表:⽤于存储任意数⽬、任意类型的数据集合,可以动态增删元素。
2.创建列表的方式:
name = ['Alice','Bob']
print("name:",name)
name = list("Charlie")
print("name:",name)
c.
range()创建整数列表
numbers = list(range(1,11,2)) #创建一个从1~11(不包含11)的列表,步长为2
print("numbers:",numbers)
运行结果如下图:
d.推导式生成列表
格式:[<表达式> for <变量> in <可迭代对象> if <条件>]
表达式:生成元素的表达式
变量:循环变量,表示可迭代对象中的每个元素
可迭代对象:可以是列表、元组、字符串、字典等
条件:可选,表示循环条件,只有满足条件的元素才会被生成
推导式的执行顺序:先循环可迭代对象,再判断条件,满足条件的元素才会被生成(先中间->后面->前面)
num = [i*10 for i in range(1,10) if i % 2 !=0] #先遍历从1~9的数,再判断if后的条
# 件,最后执行i*10
运行结果如下图:
3.列表元素的增加:
a.append()方法:(是在原对象上修改,速度最快)
list1 = [1,2,3,4,5]
list2 = [6,7,8,9,10]
newlist1 = list1.append(6) #在列表list1的末尾添加一个元素6
b.insert()方法:(涉及⼤量元素时,尽量避免使⽤)
list1 = [1,2,3,4,5]
newlist1 = list1.insert(0,0) #在list1列表的第0个位置插入0元素
c.extend()方法:(是在原对象上修改,推荐使用)
list1 = [1,2,3,4,5]
list2 = [6,7,8,9,10]
list1.extend(list2) #将list2中的元素添加到list1中
d.+运算符:(不是在原对象上进行修改,内存地址发生改变,对于操作⼤量元素不建议使⽤)
list1 = [6,7,8,9,10]
list2 = list1 + [11] #将元素11加在list1列表尾部
运行结果如下图:
e.* 运算符:(不是在原对象上进行修改)
list1 = [1,2,3,4,5]
list1 = list1 * 2 #重复list1中的元素两次
运算结果如下图:
4.列表元素的删除
a.使用del语句进行删除:
list1 = [1,2,3,4,5]
del list1[2] #删除索引为2的元素,即元素位置为2的元素
print(list1)
运行结果如下图:
b.使用pop( )语句
list1 = [1,2,3,4,5]
num = list1.pop(2) #删除索引为2的元素,并返回删除的元素
num1 = list1.pop() #删除最后一个元素,并返回删除的元素
print(list1,num)
运行结果如下图:
c.使用remove( )方法:
list1 = [1,2,3,4,5]
num2 = list1.remove(3) #删除值为3的元素
print(list1)
num3 = list1.remove(20) #不存在该元素,会保错
运行结果如下图:
d.使用clear( )方法:
list1 = [1,2,3,4,5]
list1.clear() #清空列表
print(list1)
5.列表元素访问和计数
a.通过索引直接访问元素
b.index()获得指定元素在列表中⾸次出现的索引
6.列表切⽚操作
list1 = [1,2,3,4,5]
newlist1 = list1[:] #复制整个列表
print(newlist1)
newlist2 = list1[3:] #从索引为3的元素开始复制到结尾
print(newlist2)
newlist3 = list1[:3] #从索引为0的元素开始复制到索引为2的元素(不包括索引为3的元素)
print(newlist3)
newlist4 = list1[1:3] #从索引为1的元素开始复制到索引为2的元素(不包括索引为3的元素)
print(newlist4)
newlist5 = list1[1:4:2] 从索引为1的元素开始复制到索引为4的元素(步长为2)
print(newlist5)
运行结果如下图: