一、列表的基本知识:
1、列表的创建:
①、直接创建:
②、用list()转化:
函数对象必须是iterable,list(iterable);
列表与字符串互相转化:
2、列表可以进行拼接(+),类似str:
str1 = [1,2,]
str2 = ['a','b']
print(str1+str2) 相当于 str1.expend(str2)
二、列表元素的增删改查:
1、增加元素: append、extend、insert
全是是list内部函数,不可用赋值的方法增加列表的元素,区别于dict。
①append 追加 : str.append()
append函数没有return值,添加元素保存在原list中。
list1 = [1,2,'a']
list1.append([6,7,8])
print(list1) # 结果 [1, 2, 'a', [6, 7, 8]] 注意与extend的区别。
②expend 扩展 :str.extend()
list1 = [1,2,'a']
list1.extend([777,888,9999])
print(list1) #结果 [1, 2, 'a', 777, 888, 9999]
③insert 插入: str.insert()
list1 = [1,2,'a']
list1.insert(2,[99,000]) # 先索引 后插入值
print(list1) # 结果 [1, 2, [99, 0], 'a']
2、删除元素(pop、remove、del(系统函数)):
①pop():根据 索引,得到 值
list1 = [1,2,'a']
p = list1.pop() # 支持索引 默认最后一个 return删除元素
print(list1) #删除元素后的list
print(p) # return删除元素
# 结果 [1, 2]
a
②remove:根据 值,只删一个
不知道索引时,指定元素删除,重复元素时默认只删除第一个,没有return值。
list1 = [1,2,'a',9999,9999,9999]
p = list1.remove(9999)
print(list1)
print(p)
③系统函数del: 根据 索引,不可访问
用法:del list[index] ,不加索引时全部删除,且删除不可访问,注意与 clear 区别
list1 = [1,2,'a',9999,9999,9999]
del list1[3] #
print(list1)
3、修改元素和查看元素:
①查找元素:
用索引的方式查找元素。
②修改元素:
用索引赋值的方式修改元素 : list1[index] = ' ',但是不可以利用赋值操作增加 索引范围 以外的元素(增加用append、extend)。
4、查找元素是否存在: in、not in 返回bool值
三、list函数:
1、list常用的系统函数:max() 取最大值
注意: max 与 min 是按照ASCII码来排序,根据第一个字母,如果元素是列表,列表比较大小是按照列表第一个元素来比较。
max 、min可用于字符串中。
list1 = [1,2,'a',9999,9999,9999]
list2 = ['a78','123','sh']
list3 = [747,888,989]
print(max("29889aA7"))
print(list1) #报错 列表中int与str无法比较
print(list2)
print(list3)
2、计数count, 扩展extend、索引index:
list1 = [1,2,'a',9999,9999,9999]
print(list1.count(9999))
print(list1.index(9999,4,5))
3、反向reverse,排序sort,清空clear,复制copy:
注意 sort()没有返回值,改变原list
copy()为浅拷贝
sort()默认从小到大
(1)list.clear() 注意事项:
清空clear()请注意,建议用 赋值 空列表([]) 来清空。
list1 = [1,2,3]
list2 = []
list2.append(list1) append追加列表时相当于追加一个 引用,他们共同使用一个内存空间,因此清空list1时list2也跟着清空。
print(list1,list2)
list1.clear()
print(list1,list2) # 结果 : [1, 2, 3] [[1, 2, 3]]
# [] [[]]
# 改进1、
import copy
list1 = [1,2,3]
list2 = []
list2.append(list1)
list2 = copy.deepcopy(list2) 深拷贝
print(list1,list2)
list1.clear()
print(list1,list2) # 结果 : [1, 2, 3] [[1, 2, 3]]
[] [[1, 2, 3]]
# 改进2、
可以将源代码中 list1.clear() 改为 list1 = [] 。 打印结果与 改进1 结果相同。