• 技术文章 >常见问题 >Python常见问题

    怎样加减python列表元素

    silencementsilencement2020-02-06 18:15:54原创3017

    Python list 列表增加元素可调用列表的 append() 方法,该方法会把传入的参数追加到列表的最后面。

    append() 方法既可接收单个值,也可接收元组、列表等,但该方法只是把元组、列表当成单个元素,这样就会形成在列表中嵌套列表、

    嵌套元组的情形。例如如下代码:

    a_list = ['crazyit', 20, -2]
    # 追加元素
    a_list.append('fkit')
    print(a_list) # ['crazyit', 20, -2, 'fkit']
    a_tuple = (3.4, 5.6)
    # 追加元组,元组被当成一个元素
    a_list.append(a_tuple)
    print(a_list) # ['crazyit', 20, -2, 'fkit', (3.4, 5.6)]
    # 追加列表,列表被当成一个元素
    a_list.append(['a', 'b'])
    print(a_list) # ['crazyit', 20, -2, 'fkit', (3.4, 5.6), ['a', 'b']]

    在上面代码中,执行完第 10 行代码之后,程序向列表中追加了一个元组,此时被迫加的元组只是列表中的一个元素(嵌套元组),接下来输出该列表时将看到如下结果:

    ['crazyit', 20, -2, 'fkit', (3.4, 5.6), ['a', 'b']]

    从上面代码可以看出,为列表追加另一个列表时,Python 会将被迫加的列表当成一个整体的元素,而不是追加目标列表中的元素。

    如果希望不将被追加的列表当成一个整体,而只是追加列表中的元素,则可使用列表的 extend() 方法。例如如下代码:

    b_list = ['a', 30]
    # 追加元组中的所有元素
    b_list.extend((-2, 3.1))
    print(b_list) # ['a', 30, -2, 3.1]
    # 追加列表中的所有元素
    b_list.extend(['C', 'R', 'A'])
    print(b_list) # ['a', 30, -2, 3.1, 'C', 'R', 'A']
    # 追加区间中的所有元素
    b_list.extend(range(97, 100))
    print(b_list) # ['a', 30, -2, 3.1, 'C', 'R', 'A', 97, 98, 99]

    此外,如果希望在列表中间增加元素,则可使用列表的 insert() 方法,使用 insert() 方法时要指定将元素插入列表的哪个位置。例如如下代码:

    c_list = list(range(1, 6))
    print(c_list) # [1, 2, 3, 4, 5]
    # 在索引3处插入字符串
    c_list.insert(3, 'CRAZY' )
    print(c_list) # [1, 2, 3, 'CRAZY', 4, 5]
    # 在索引3处插入元组,元组被当成一个元素
    c_list.insert(3, tuple('crazy'))
    print(c_list) # [1, 2, 3, ('c', 'r', 'a', 'z', 'y'), 'CRAZY', 4, 5]

    删除列表元素使用del语句。del语句是Python的一种语句,专门用于执行删除操作,不仅可用于删除列表的元素,也可用于删除变量

    等。

    使用 del 语句既可删除列表中的单个元素,也可直接删除列表的中间一段。例如如下代码:

    a_list = ['crazyit', 20, -2.4, (3, 4), 'fkit']
    # 删除第3个元素
    del a_list[2]
    print(a_list) # ['crazyit', 20, (3, 4), 'fkit']
    # 删除第2个到第4个(不包含)元素
    del a_list[1: 3]
    print(a_list) # ['crazyit', 'fkit']
    b_list = list(range(1, 10))
    # 删除第3个到倒数第2个(不包含)元素,间隔为2
    del b_list[2: -2: 2]
    print(b_list) # [1, 2, 4, 6, 8, 9]
    # 删除第3个到第5个(不包含)元素
    del b_list[2: 4]
    print(b_list) # [1, 2, 8, 9]

    上面程序中,第 3 行代码简单地删除了列表中的一个元素;第 6 行代码执行删除时,使用了列表的 slice 语法,因此该删除操作将会删除列表的中间一段;第 10 行代码执行删除时,同样使用了列表的 slice 语法,并指定了间隔,因此将会看到以间隔为 2 的方式删除列表的中间一段。

    使用 del 语句不仅可以删除列表元素,也可以删除普通变量,例如如下代码:

    name = 'crazyit'
    print(name) # crazyit
    # 删除name变量
    del name
    #print(name) # NameError

    程序中第 4 行代码删除了 name 变量,因此接下来访问 name 变量时将会引发 NameError 错误。

    除使用 del 语句之外,Python 还提供了 remove() 方法来删除列表元素,该方法并不是根据索引来删除元素的,而是根据元素本身来执行删除操作的。该方法只删除第一个找到的元素,如果找不到该元素,该方法将会引发 ValueError 错误。

    如下代码示范了使用 remove() 方法删除元素:

    c_list = [20, 'crazyit', 30, -4, 'crazyit', 3.4]
    # 删除第一次找到的30
    c_list.remove(30)
    print(c_list) # [20, 'crazyit', -4, 'crazyit', 3.4]
    # 删除第一次找到的'crazyit'
    c_list.remove('crazyit')
    print(c_list) # [20, -4, 'crazyit', 3.4]

    列表还包含一个 clear() 方法,正如它的名字所暗示的,该方法用于清空列表的所有元素。例如如下代码:

    c_list.clear()
    print(c_list) # []
    专题推荐:list
    上一篇:python怎么打包整个项目 下一篇:python为何要用geany

    相关文章推荐

    • python如何输出list• python 空list如何表示• python list怎样生成随机数• python的list有顺序吗

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网