创建列表的三种方式:
(1). 方式1
l1 = [1,2,3] # 直接添加列表 print(l1)
(2). 方式2
l1 = list() # 创建一个空列表 l1.append(1) # 通过拼接方式添加字符串 print(l1) # 输出l1
(3). 方式3(range()创建整数列表)
list_01 = list(range(start,end)) # 在list_01列表里添加从start开始,end结束的数 list_01 = list(range(1,10)) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
(4). 方式4(列表推导式)
re = [i*2 for i in range(1,10)] # 将1-10给i并乘2输出 print(re) # [2, 4, 6, 8, 10, 12, 14, 16, 18]
常用函数:
len(list) # 返回列表元素个数 max(list) # 返回列表元素中的最大值 min(list) # 返回列表元素中的最小值 list(seq) # 用于将元组或字符串转换为列表
常用方法:
list.append(obj) # 用于在列表末尾添加新的对象 list.count(obj) # 用于统计某个元素在列表中出现的次数 list.extend(seq) # 用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) list.index("字符串") # 从列表中找出'字符串'第一个匹配项的索引位置 list.insert(index,obj) # 用于将指定对象插入列表的指定位置 list.pop(index) # 删除列表的一个指定下标元素(默认最后一个元素),并返回该元素的值 list.remove(obj) # 移除列表中指定元素 list.reverset() # 反转列表中的元素 list.sort() # 对列表进行排序 list.clear() # 清空列表内所有的元素 list.copy() # 对列表进行复制,赋给另一个列表
简单操作:
索引切片(布长)
l1 = [1,2,3,4,5,6,7,8,9]
print(l1[0]) # 1
print(l1[:]) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l1[2:5]) # [3, 4, 5]
print(l1[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1]
查:
(1). while循环输出元素
l1 = [1,2,3,4,5,6,7,8,9] i = 0 while i <= len(l1) - 1 : print(l1[i],end=" ") # 1 2 3 4 5 6 7 8 9 i+=1
(2). for循环输出
l1 = [1,2,3,4,5,6,7,8,9] for i in range(len(l1)) : print(l1[i],end=" ") # 1 2 3 4 5 6 7 8 9
(3). 使用enumerate(枚举)
# 1). 通过拆包方式进行那值 l = ['京文','琪琪','熊大','萝卜头'] for i,j in enumerate(l,1): print(i,j) # 2). 将列表改变为元素进行查询 l = ['京文','琪琪','熊大','萝卜头'] for i in enumerate(l,1): print(i)
增:
(1). append: 追加,给列表的最后面追加一个元素(可以添加列表)
l1 = [1,2,3,4,5,6,7,8,9] l1.append("小明") print(l1) # [1, 2, 3, 4, 5, 6, 7, 8, 9, '小明']
(2). insert: 插入在列表的指定索引前,插入元素
l1 = [1,2,3,4,5,6,7,8,9] l1.inser(3,"小明") print(l1) # [1, 2, 3, '小明', 4, 5, 6, 7, 8, 9]
(3). extend : 迭代着追加,在列表的最后面迭代这追加一组数据
l1 = [1,2,3,4,5,6,7,8,9] l2 = [6,2,88,33,1] l1.extend(l2) print(l1) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 6, 2, 88, 33, 1]
删:
(1). pop : 通过索引删除列表中对应的元素(l2取出该元素),默认为最后一个元素
l1 = [1,2,3,4,5,6,7,8,9] l2 = l1.pop(2) print(l2," ",l1) # 3 [1, 2, 4, 5, 6, 7, 8, 9]
(2). remove : 通过获取的值,删除指定列表里边指定的元素
l1 = [1,2,3,4,5,6,7,8,9] l1.remove(8) print(l1) # [1, 2, 3, 4, 5, 6, 7, 9]
(3). clear : 直接清空列表的所有元素
l1 = [1,2,3,4,5,6,7,8,9] l1.clear() print(l1) # []
(4). del : 按照索引删除列表中对应的元素
l1 = [1,2,3,4,5,6,7,8,9] del l1[2] print(l1) # [1, 2, 4, 5, 6, 7, 8, 9]
(5). 切片(步长)删除该元素
l1 = [1,2,3,4,5,6,7,8,9] del l1[1:] print(l1) # [1] l2 = [1,2,3,4,5,6,7,8,9] del l2[::2] print(l2) # [2, 4, 6, 8]
改:
(1). 直接通过索引改
l1 = [1,2,3,4,5,6,7,8,9] l1[2] = "小明" print(l1) # [1, 2, '小明', 4, 5, 6, 7, 8, 9]
(2). 按照切片改值(迭代着增加)
l1 = [1,2,3,4,5,6,7,8,9] l1[3:1] = "小明abc" print(l1) # [1, 2, 3, '小', '明', 'a', 'b', 'c', 4, 5, 6, 7, 8, 9]
(3). 按照切片(布长)改值(必须一一对应(列表长度-1/相隔长度))
l1 = [1,2,3,4,5,6,7,8,9] l1[::3]="mou" print(l1) # ['m', 2, 3, 'o', 5, 6, 'u', 8, 9]
列表的二分查找:
需要查找的列表一定要是'升序'或者'倒序'
def binarysearch(l1,num): # 创建函数,传入参数(列表,数值) start_index = 0 # 列表的起始索引 end_index = len(l1) - 1 # 列表的最终索引 while start_index < len(l1): # 设置循环一直运行,直到两者相等 mid_index = (start_index + end_index) // 2 # 第一次需要查找的索引(防止数值溢出). if l1[mid_index] == num : # 如果两者相等,则返回当前索引 return mid_index elif l1[mid_index] > num : # 如果列表中查找的元素大于需要查找的目标,最终索引-1 end_index = mid_index - 1 else : # 如果列表中查找的元素小于需要查找的目标,起始索引+1 start_index = mid_index + 1 return None # 默认返回 无(None) l1 = [1,2,3,4,5,6,7,8,9,10,11,12,13] re = binarysearch(l1,4) print(re)