list 插入的思路 剖析

Posted lxcai213

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了list 插入的思路 剖析相关的知识,希望对你有一定的参考价值。

l = [88,97,79,89,76]
l.sort()                     # 正序排序列表
l1 = list()                  # 赋值 l1 list() 空list
for i in range(len(l)+1):    #  把i 循环 len(l)+1  空出一个位置
    l1.append(0)             #   赋值 l1 list (0)
print(l1)                    # l = [88,97,79,89,76]
                             # l1=[0, 0, 0, 0, 0, 0]
for i in range(len(l)):     # 把i 循环 len(l) 的长度
    l1[i] = l[i]            #  把 l list 里元素 赋值到  l1 list 里
print(l1)                   # l1 =[76, 79, 88, 89, 97, 0]
#   查找需要插入list 的位置索引
insert_index = 0            #参照物
for i in range(len(l1)):    #循环  range(len(l1)) 的次数
    if l1[i] >80:           #条件  成立 向下运行 不成立 继续循环
        insert_index = i    #   条件成立后   变量交换   
        break               # 退出循环
print(insert_index)    # 输出 查找的 索引位置
                       #   第二位
#  找到插入位置后 移动后续元素
i = len(l1)-2                           #    需要移动元素的位置  97  位于 l1 list   -2    正序 第 4
while i >= insert_index:                #  循环 i >= insert_index
    l1[i], l1[i + 1] = l1[i + 1], l1[i] #  a,b =b,a
    i-=1                                #  i-=1
print(l1)                               #  输出 [76, 79, 0, 88, 89, 97]
l1[insert_index] = 80                   #   改值 [insert_index]  位于 insert_index的元素 = 80
print(l1)                               #  输出 [76, 79, 80, 88, 89, 97]

 

以上是关于list 插入的思路 剖析的主要内容,如果未能解决你的问题,请参考以下文章

STL源码剖析——序列式容器#2 List

STL源码剖析(中文完整版)pdf

KDoc:插入代码片段

C++源码剖析——list

Linux(内核剖析):14---内核数据结构之链表(struct list_head)

代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?