zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    Unique Binary Search Trees——LeetCode
    Binary Tree Inorder Traversal ——LeetCode
    Maximum Product Subarray——LeetCode
    Remove Linked List Elements——LeetCode
    Maximum Subarray——LeetCode
    Validate Binary Search Tree——LeetCode
    Swap Nodes in Pairs——LeetCode
    Find Minimum in Rotated Sorted Array——LeetCode
    Linked List Cycle——LeetCode
    VR AR MR
  • 原文地址:https://www.cnblogs.com/mamouren/p/13268209.html
Copyright © 2011-2022 走看看