zoukankan      html  css  js  c++  java
  • python 清空list的几种方法

    本文介绍清空list的四种方法,以及 list=[ ] 和 list.clear() 在使用中的区别(坑)。

    1、使用clear()方法

    lists = [1, 2, 1, 1, 5]
    lists.clear()
    print(lists)
    >>>[]

    2、重新初始化列表:初始化该范围内的列表,初始化列表没有值,即大小为0的列表

    lists = [1, 2, 1, 1, 5]
    lists = []
    print(lists)
    >>>[]

    3、使用 “ * = 0 ”

    lists = [1, 2, 1, 1, 5]
    lists *= 0
    print(lists)
    >>>[]

    4、使用 del: del可以用来清除范围中的列表元素,如果我们不给出范围,则删除所有元素

    lists = [1, 2, 1, 1, 5]
    del lists[:]
    print(lists)
    >>>[]
    lists2 = [1, 2, 1, 1, 5]
    del lists2[:2]
    print(lists2)
    >>>[1, 1, 5]

    但是在使用 list=[ ] 和 list.clear() 的时候,遇到过一个问题:

    先使用: list.clear()

    first = []
    last = []
    lists_more = [1, 2, 3, 4, 5, 6]
    
    for i in lists_more:
        first.append(i)
        last.append(first)
        first.clear()
    
    print(last)
    >>>[]

    而使用 list=[ ] :

    first = []
    last = []
    lists_more = [1, 2, 3, 4, 5, 6]
    
    for i in lists_more:
        first.append(i)
        last.append(first)
        first = []
    
    print(last)
    >>>[[1], [2], [3], [4], [5], [6]]

    因此,实际使用中,列表的初始化清空和使用 clear() 清空 二者有区别,涉及到内存空间的引用问题,在面对有列表的复用问题时需要多加小心,最好采用初始化清空。

    参考地址:https://www.geeksforgeeks.org/different-ways-to-clear-a-list-in-python/

  • 相关阅读:
    paip.解决Invalid byte 2 of 2byte UTF8 sequence.
    poj1157
    poj1258
    poj1160
    poj1113
    poj1159
    !!!GRETA正则表达式模板类库
    【原创】C#与C++的混合编程采用其中的第三种方法
    WinApi.cs
    C#:正则表达式30分钟入门教程
  • 原文地址:https://www.cnblogs.com/BackingStar/p/10986775.html
Copyright © 2011-2022 走看看