第一部分:列表
一.作用:存放多个值,可以是同种类型,也可以是多种类型一般存放同种类型的多个值
这样方便取用,索引对应值,有序.
二.定义
list1=[1,2,3] #list1=list([1,2,3])
三.类型转换:但凡是for循环能够遍历的数据类型,都能当做参数传给list()转成列表
1.字符串转成列表
例:
msg='hello'
x=list(msg)
1.字典转成列表
例:
res=list({'k1':111,'k2':222,'k3':222})
print(res)
四.内置方法
(需要掌握的操作)
1.按照索引取值,正向存取,反向存取,即可取可改
例:
正向取
list1=[111,'egon','hello']
print(list1[1])
方向取
list1=[111,'egon','hello']
print(list1[-1])
不管是取还是改,不存在的索引报错
list1=[111,'egon','hello']
list1[100]=100 #报错IndexError: list assignment index out of range
print(list1[100]) #报错IndexError: list assignment index out of range
存在的索引的值可以改
list1=[111,'egon','hello']
list1[0]=222
2.切片(顾头不顾尾,步长),列表的完整切片相关于浅copy,拷贝的目的使为了写,写操作不独立
3.长度len:列表值的个数,即列表元素的个数
print(len([1, 2, 3]))
4.成员运算in和not in,判断一个值是否存在于列表之中
print('bbb' in ['bbb', 1, 2]) #in,在列表中返回True,不在返回False
print('aaa' not in ['bbb', 1, 2]) #not in,不在列表中返回True,在返回False,
对in的取反
5.往列表中添加值:append insert extend三种方法
5.1 append追加:永远从列表末尾加入
谁来调用append就是往谁里面追加,也就是说在操作谁
用法:
l=[111,'egon','hello']
l.append(3333) #l调用的append索引将参数333追加到l列表的末尾
print(l)
5.2 insert插入:让给定的值加入到指定索引的位置,就是说需要给两个参数
用法:
l=[111,'egon','hello']
l.insert(0,'alex')
print(l)
——>可以在列表中任意位置加值
5.3 extend:把一个列表中的每个值追加到例另一个列表中去,
也就是说让可迭代对象中包含的值解压添加到另一个列表中去,参数是一个可迭代对象
用法:
new_l=[1,2,3]
l=[111,'egon','hello']
l.extend(new_l)
l.extend('abc')
print(l) #[111, 'egon', 'hello', 1, 2, 3]
6.删除
6.1 方式一
l=[1,2,3]
del l[0] #没有返回值
6.2 方式二:pop删除指定索引位置的值并返回值,不指定索引默认从末尾删,删最后一个
会返回删除的值。
用法:
指定索引位置
l = [111, 'egon', 'hello']
res=l.pop(1) #删除索引1的值'egon'
print(l)
不指定索引位置
l.pop() #删除末尾的值'hello'
6.3 方式三:remove据指定元素进行删除,必须给定删除的元素,
返回None即没有返回值赋值时不会报错,没有参数时会报错
例:
l = [111, 'egon', [1,2,3],'hello']
l.remove([1,2,3])
print(l)
res=l.remove('egon')
print(res) # None
7.循环
例:
l=[1,'aaa','bbb']
for x in l:
l.pop(1)
print(x)
五.需要掌握的操作
l. l.count() 统计给定值在列表中有多少个
2. l.index() 列表没有find方法,找不到给定值报错,找到返回值在列表中的索引
3. l.clear() 没有参数,删除所有元素,清空列表
4. l.reverse() 不是排序,将列表倒过来,第一个变最后一个,第二个
变倒数第二个
6. l.sort() 排序,默认的是从小到大排,升序l.sort(reverse=False),
降序l.sort(reverse=True),列表内的元素必须是同种类型才能进行排序,否则报错,
列表中是数字类型即整型和浮点的时候能进行排序
六.补充
队列: FIFO,就是先进的先出,类似于先上电梯的先下电梯
l=[]
# 入队操作
l.append('first')
l.append('second')
l.append('third')
print(l)
出队操作
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))
堆栈:LIFO,后进先出,堆栈相当于放一堆书,拿的时候先从上面最后放那本开始拿,最先放的那本最后才能拿到
入栈操作
l.append('first')
l.append('second')
l.append('third')
print(l)
出栈操作
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))