• 列表 字典的删除问题


    遇见的删除不彻底的问题

    lst = [1,2]
    for i in lst:
    lst.append(3)#每次增加 lst 的长度越长 所以一直执行
    print(lst) # 死循环

    删除列表的问题

    lst = [1,2,3,4]
    for i in lst:
    lst.pop()
    print(lst)
    结果为:[1,2] 当i 为1的时候 删除最后一个元素4; i为2的时候删除3 结束

    lst = [1,2,3,4]
    for i in lst:
    lst.pop(0)
    print(lst)
    结果为:[3,4]
    当i 值为第一个元素 也就是1 删除第一个元素1,此时列表为[2,3,4] 此时i 为第二个元素 也就是3 删除第一个元素 也就时2 这是列表为[3,4] 此时列表为两个元素 不能取第三个元素 结束

    lst = [1,2,3,4]
    for i in lst:
    lst.remove(i)
    print(lst)
    结果为:[2,4]
    当i 值为第一个元素 也就是1 删除第i个元素1,此时列表为[2,3,4] 此时i 为第二个元素 也就是3 删除第i个元素 也就时2 这是列表为[2,4] 此时列表为两个元素 不能取第三个元素 结束

    成功删除的方式

    lst=[1,2,3,4,6]
    for i in range(len(lst))
    lst.pop()
    print(list)
    结果为:[] 获取列表长度 来进行删除

    lst=[1,2,3,4,6]
    for i in range(len(lst)-1,-1,-1)
    del lst[i]
    print(lst)
    结果为:[] i为索引值 倒序删除

    lst = [1,2,3,4,6]
    for i in range(len(lst)):
    del lst[-1]
    print(lst)
    结果为:[] 获取列表长度 每次删除最后一个 执行i次

    lst = [1,2,3,4,5,6]
    lst1 = lst.copy()
    for i in lst1:
    lst.remove(i)
    print(lst)
    结果为:[] 浅拷贝 lst1 用lst1进行迭代 但 删除lst元素 两个互不影响

    删除字典的坑

    dic=dict.fromkeys("12345",1)# 字典的迭代的时候改变了原来的大小(不能加不能删)
    for i in dic
    dic[i]="123"
    print(dic)
    结果为:{'1': '123', '2': '123', '3': '123', '4': '123', '5': '123'} 没有改变字典的大小

    dic = dict.fromkeys("12345",1)
    dic1 = dic.copy()
    for i in dic1:
    dic.pop(i)
    print(dic)

    浅拷贝 dic 生成dic1 迭代dic1 但删除dic 结果为:{}

    集合和字典都是迭代的时候不能改变原来的大小

  • 相关阅读:
    编程之美3.7 队列中最大值问题
    群聊天
    POJ 3384 Feng Shui 半平面交
    Fiberead
    熊猫资本李论:为何我不看好“轻轻家教”模式?_亿欧网_驱动创业创新
    轻轻家教_百度百科
    为什么我们要使用新型Web安全协议HSTS?
    http://www.doframe.com/jetoolweb/index.html
    http://www.16aspx.com/Code/Show/5352
    http://www.ybtsoft.com/
  • 原文地址:https://www.cnblogs.com/yhx003/p/11438469.html
Copyright © 2020-2023  润新知