Python-列表(list)

创建列表的三种方式:
(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)

 

posted @ 2020-07-08 20:27  马ある某  阅读(269)  评论(0编辑  收藏  举报