列表
3.1什么是列表
列表 : 列表是由一系列按特定顺序排列的元素组成 (有序性 , 类型不唯一);python列表的特殊性元素类型可以一样 ,和java的数组进行区别 。
3.2 列表的查询 、遍历
列表是有序的集合,通过指定的索引进行查询。(索引是从0开始,-1代表最后一个元素)
for循环进行遍历 ,选择描述单个列表的元素临时变量和列表有关联是最好的。(for循环注意一定不忘记写 :,缩进要对好) 。
names = ['alice','billi','jason']
for name in names:
print(name)
while循环来遍历列表 , 如果在遍历的同时对列表进行操作 , 选择使用while循环。
guests = ['周杰伦','林俊杰','薛之谦']
new_guests = []
while guests :
guest = guests.pop()
if(guest == '林俊杰'):
print(f'我是{guest}抱歉今天晚上不能参加')
new_guests.append('蔡依林')
continue
new_guests.append(guest)
for guest in new_guests:
print(guest)
3.3 列表的增删改查
修改 : 指定索引直接赋值 。 ( guests[0] = ‘q’ )
添加元素: ① 在列表的末尾添加元素。 append ( ) 。 方法append( )在让动态创建列表更简单。( 例如:你创建个空列表 , 在使用一系列函数调用append来添加元素)
插入元素 : 使用insert( ) 可以在列表的任意位置添加元素。参数需要指定新元素的索引和值。 ② extend :列表的追加 。(append将列表当做一个元素追加到列表中,a.extend(b) 将b中的每一个元素追加到a中)
删除元素 : ① 使用del语句删除元素 。使用del删除可删除任意位置的列表元素。条件知道其索引 。 ② 使用pop( )删除元素 , 默认是删除最后一个元素,也可以指定索引,使用pop( )弹出的元素将不在列表中。 (如果从列表中删除一个元素且不在使用就用remove,如果删除元素还能继续使用就使用pop( ) )。 ③根据值删除元素,当不知道要删除列表值的索引,只知道值。可以用remove( )方法 , 没有找到的话会抛异常 。 【方法remove( )只删除匹配到的第一个的值,如果删除的值在列表中是重复的,使用循环配合来删除】
查 : in , not in ; index ( a , start ,end): 可以查找指定下标范围的元素,并且 返回对应数据的索引 ,范围左闭右开 [ start , end ) 。
count( ) , 统计某个元素出现几次 。
del guests[0]
names = ['a' , 'b']
name_del = names.pop()
name_del2 = 'b'
names.remove(name_del2)
3.4 列表的排序
永久排序:使用sort()对列表永久的排序 。默认是升序,传入参数 reverse = True 即可倒序。
临时排序:要保留列表元素原有的排列顺序,同时以特定的顺序呈现它们,可以使用函数sorted()。sorted()能让你按特定的顺序来显示列表,同时不影响列表中的原始排列顺序。
cars = ['bmw' , 'audi' ,'subaru']
cars2 = ['bmw' , 'audi' ,'subaru']
cars.sort()
cars2.sorted()
3.5 倒着打印列表
要反转列表的排列顺序可以使用reverse( )。reverse( )永久性修改列表元素的排列顺序,但是可以随时恢复,只需对列表再次调用reverse( ) 。
3.6 列表的长度 (len()方法)
3.7 数值列表的创建,使用函数range()
python函数range()可以轻松生成一系列数,range(start , end , step) ,取值范围 [start , end)左闭右开 。
for value in range(1,5):
print(value)
使用range()创建数字列表 。
numbers = list(range(0,5))
# 创建一个列表 , 包含前十个整数的平方
squares = []
for value in range(1,11):
square = value **2
squares.append(square)
# 根据情况定是否用到临时变量
squares.append(value **2)
# 对数字列表执行简单的统计计算
min(squares )
max(squares )
sum(squares )
3.8 列表解析
列表解析将for循环和创建新元素的代码合并成一行 。
squares = [value ** for value in range(1,11)]
3.9 使用列表的一部分
列表切片 , 遍历切片 ,列表的复制 (names_demo = names[ :] 浅复制, 对一维的列表是可以的, 但是对于多维列表是不行的)
使用枚举函数,同时拿到列表的元素和下标 。
myList = ['a','b','c']
for i,x in enumerate(myList) :
print(i+1,x)
1 a
2 b
3 c
[Finished in 0.2s]