精华内容
下载资源
问答
  • 列表增加元素
    千次阅读
    2020-12-06 04:28:21

    面试python遇到的一道数据类型基础题

    我们都知道python中不可变类型有tuple,但是如果tuple里面的列表增加元素会怎么样呢?

    先看代码:

    a = (1,2,3,[4,5])

    print(a[3]) # [4, 5]

    a[3].append(6)

    print(a) # (1, 2, 3, [4, 5, 6])

    a[3] += [9]

    """Traceback (most recent call last):

    File "", line 1, in

    TypeError: 'tuple' object does not support item assignment

    """

    print(a) # (1, 2, 3, [4, 5, 6, 9])

    a[3] = a[3] + [10]

    """Traceback (most recent call last):

    File "", line 1, in

    TypeError: 'tuple' object does not support item assignment

    """

    print(a) # (1, 2, 3, [4, 5, 6, 9])

    我们发现:

    (1)当元祖a里面有列表[4,5],我们进行a[3].append(6)操作时,成功添加"6"没任何问题.

    (2)当我们使用 += 的时候a[3] += [9],就报错了,但是最后还是成功添加进去了

    (3)然后我们使用 a[3] = a[3] + [10]的时候,发现也报错但是并没有加进去

    其实报错的原因是因为赋值=的时候,我们不能修改元祖的元素地址(这也是元祖不可变的原因),

    我们可以修改元祖的可变元素(比如列表)的值,但是不能修改地址,所以不能用赋值符号

    而修改值的操作比如extend(),append(),remove()是在原有内存区间修改值,以及比较特殊的+=是先进行值的修改再赋值,所以在原有的基础上增加成功,但是赋值操作失败报错了,也就是为啥还能修改成功的原因

    更多相关内容
  • 下面小编就为大家分享一篇python创建列表和向列表添加元素的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python中嵌套列表增加元素小结

    千次阅读 2021-06-07 10:41:58
    目录 一、引言 二、列表元素操作 ...随着层数增加,则需要循环向列表list中增加元素templist。此时发现循环后消除templist也会改变list中的元素。为此做出相关的研究和探索,即python中将一个列表作为另一..

    目录

    一、引言

    二、列表元素操作

    三、相关问题分析

    3.1预期

    3.2现象

    四、解决方法

    4.1对于复制赋值,保持原列表不改变的方法:

    4.2那么对于嵌套类型的列表,该如何增加元素呢


    一、引言

        在实现杨辉三角案例过程中,将每一层的数存为一个templist,并最终归结到一个大列表list中来保存。随着层数增加,则需要循环向列表list中增加元素templist。此时发现循环后消除templist也会改变list中的元素。为此做出相关的研究和探索,即python中将一个列表作为另一个嵌套列表的元素添加进去,但不能随着改变该列表而改变了嵌套列表。

    二、列表元素操作

    python列表函数
    序号函数
    1len(list)
    列表元素个数
    2max(list)
    返回列表元素最大值
    3min(list)
    返回列表元素最小值
    4list(seq)
    将元组转换为列表
    python列表方法
    序号方法
    1list.append(obj)
    在列表末尾添加新的对象
    2list.count(obj)
    统计某个元素在列表中出现的次数
    3list.extend(seq)
    在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
    4list.index(obj)
    从列表中找出某个值第一个匹配项的索引位置
    5list.insert(index, obj)
    将对象插入列表
    6list.pop([index=-1])
    移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    7list.remove(obj)
    移除列表中某个值的第一个匹配项
    8list.reverse()
    反向列表中元素
    9list.sort( key=None, reverse=False)
    对原列表进行排序
    10list.clear()
    清空列表
    11list.copy()
    复制列表

    三、相关问题分析

    3.1预期

    >>> mylist2 = [1,2,1]
    >>> mylist1 = [[1],[1,1]]
    >>> #预期是mylist1[[1],[1,1],[1,2,1]],并在之后需清空mylist2,而mylist1不改变

    3.2现象

    1、使用append添加,在使用clear去清除mylist2,会发现mylist1也随之改变:

    >>> mylist1.append(mylist2)
    >>> print(mylist1)
    [[1], [1, 1], [1, 2, 1]]
    >>> mylist2.clear()
    >>> print(mylist1)
    [[1], [1, 1], []]

    2、使用copy呢:是直接赋值,而不是添加元素

    >>> mylist1 = mylist2.copy()
    >>> print(mylist1)
    [1, 2, 1]

    3、直接加:看起来相似,实际不对,没有增加元素个数,而是将mylist1作为整体存为一个元素。

    >>> mylist1 = [mylist1,mylist2]
    >>> print(mylist1)
    [[[1], [1, 1]], [1, 2, 1]]

    4、综合现象:

    1)、通过 clear() 方法,remove() 方法,pop() 方法,append() 方法等改变列表的,相应的已经赋值给其它变量的列表也会被清空。

    2)、使用del将直接删除该变量,使得下次无定义

    3)、当列表list1使用copy()方法被复制到另一个列表list2时,使用clear()方法清空原列表list1,列表list2不会被清空,即不会影响复制列表。(直接赋值操作)

    四、解决方法

    4.1对于复制赋值,保持原列表不改变的方法:

    1、使用切片方法复制列表

    cities1 = ["Guangzhou","Beijing","Shanghai","Nanjing"]

    cities2 = cities1[:]

    cities1.insert(1,"Xiamen")#改变cities2,而cities1不改变

    2、使用copy函数复制列表

    cities1 = ["Guangzhou","Beijing","Shanghai","Nanjing"]

    cities2 = cities1.copy()

    cities1.insert(1,"Xiamen")#改变cities2,而cities1不改变

    3、使用for循环方法复制

    cities1 = ["Guangzhou","Beijing","Shanghai","Nanjing"]

    cities2 = [i for i in cities1]

    cities2.append("Kunming")#改变cities2,而cities1不改变

    4.2那么对于嵌套类型的列表,该如何增加元素呢

    这里借鉴以上,将主要使用切片方法去赋值,并用插入函数增加嵌套列表元素:

    >>> mylist1 = [[1],[1,1]]
    >>> mylist2 = [1,2,1]
    >>> mylist1.insert(2,mylist2[:])
    >>> print(mylist1)
    [[1], [1, 1], [1, 2, 1]]
    >>> mylist2.clear()
    >>> print(mylist2)
    []
    >>> print(mylist1)
    [[1], [1, 1], [1, 2, 1]]
    >>> 

    如此,就可以实现上面嵌套列表mylist1元素的增加,mylist1不会因mylist2列表的改变而改变。

    展开全文
  • 列表添加元素】详解python中列表添加元素的几种方式(+、append()、extend()),扩展、区别。

    1、使用+加号

    +加号是将两个list列表相加,返回一个新的列表对象,会消耗额外的内存。

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    if __name__ == '__main__':
        a = [1, 2, 3]
        b = [4, 5, 6]
        c = a + b
        print(c)

    输出:

    [1, 2, 3, 4, 5, 6]
    
    Process finished with exit code 0

    2、使用append()方法

    append()方法在列表的末尾添加新的对象,该方法无返回值,但是会修改原来的列表。

    语法:list.append(obj)

    参数:obj – 添加到列表末尾的对象。

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    if __name__ == '__main__':
        a = [1, 2, 3]
        b = [4, 5, 6]
        a.append(b)
        print(a)

    输出:

    [1, 2, 3, [4, 5, 6]]
    
    Process finished with exit code 0

    3、使用extend()方法

    extend()方法用新列表扩展原来的列表,会把对象迭代添加到列表后面,只支持可迭代对象的数据。(可迭代对象: 能用for循环进行迭代的对象就是可迭代对象, 比如:字符串,列表,元组,字典,集合等等)

    该方法没有返回值,但会在已存在的列表中添加新的列表内容。

    语法:list.extend(seq)

    参数:seq – 元素列表。

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    if __name__ == '__main__':
        a = [1, 2, 3]
        b = [4, 5, 6]
        a.extend(b)
        print(a)

    输出:

    [1, 2, 3, 4, 5, 6]
    
    Process finished with exit code 0

    4、难点

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    if __name__ == '__main__':
        a = [1, 2, 3]
        c = []
        c.append(a)
        print(c)
        a.append(4)
        print(c)

    输出:

    [[1, 2, 3]]
    [[1, 2, 3, 4]]
    
    Process finished with exit code 0

    可以看到改变a列表以后,c列表也发生了改变。

    出现这种现象的原因:因为list列表使用append()方法追加时,实际上是浅拷贝造成的。

    解决方法:可以使用copy.deepcopy()进行深拷贝。

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import copy
    
    if __name__ == '__main__':
        a = [1, 2, 3]
        c = []
        c.append(copy.deepcopy(a))
        print(c)
        a.append(4)
        print(c)

    输出:

    [[1, 2, 3]]
    [[1, 2, 3]]
    
    Process finished with exit code 0

    展开全文
  • 1.2 python列表添加元素的三种方法

    万次阅读 2021-08-07 14:12:10
    列表是序列的一种,可以使用 + 进行链接,这样相当于在第一个列表的末尾添加了另一个列表。 list1 = [1,2,3,4] list2 = ['a','b','c'] list3 = list1 + list2 print(list3) 输出结果: [1,2,3,4,'a','b','c'] ...

            列表是序列的一种,可以使用 + 进行链接,这样相当于在第一个列表的末尾添加了另一个列表。

    list1 = [1,2,3,4]
    list2 = ['a','b','c']
    list3 = list1 + list2
    print(list3)

    输出结果: [1,2,3,4,'a','b','c']

             可以看出使用 + 会生成一个新的列表,但是该方法效率不高

    第一种方法:append()

            append()方法用于在列表的末尾追加元素,语法格式:

    list1.append('a')

            将元素a追加到列表list1末尾。这儿既可以是单个元素追加,也可以是列表、元组等。

    list1 = [1,2,3,4]
    #追加单个元素
    list1.append('a')
    print(list1)
    
    
    #追加元组
    t = ('java','python')
    list1.append(t)
    print(list1)
    

    输出结果: [1,2,3,4,'a']        

                       [1,2,3,4,('java','python')]

            我们发现,当给append()方法传递列表或者元组的时候,会将他们视为一个整体,作为一个元素添加到列表中。

    第二种方法:extend()

            与append()不同的是:extend()不会把列表或者元组视为一个整体,而是将它们包含的元素逐个添加到列表中。

            与append()相同的是:追加的元素依旧是末尾处

    list1 = [1,2,3,4]
    #追加单个元素
    list1.append('a')
    print(list1)
    
    
    #追加元组
    t = ('java','python')
    list1.append(t)
    print(list1)
    

    输出结果: [1,2,3,4,'a']

                       [1,2,3,4,'java','python']

    第三种方法:insert()

            append()和extend()方法只能在列表末尾插入元素,如果希望在列表中间某个位置插入元素,可以使用insert()。

     list1.insert(index,obj) # 将obj元素插入list1列表中的index个元素位置。

            当插入列表或者元组时,insert()也将其视为一个整体,作为一个元素插入列表中。

    l = ['Python', 'C++', 'Java']
    #插入元素
    l.insert(1, 'C')
    print(l)
    #插入元组,整个元祖被当成一个元素
    t = ('C#', 'Go')
    l.insert(2, t)
    print(l)
    #插入列表,整个列表被当成一个元素
    l.insert(3, ['Ruby', 'SQL'])
    print(l)
    

     输出结果:

    ['Python', 'C', 'C++', 'Java']
    ['Python', 'C', ('C#', 'Go'), 'C++', 'Java']
    ['Python', 'C', ('C#', 'Go'), ['Ruby', 'SQL'], 'C++', 'Java']

    展开全文
  • Python 之列表添加元素的3种方法

    万次阅读 2019-02-27 10:09:58
    一、追加单个值: append() 方法 追加单个元素: >>> list = ['crazyit', 20, -2] ...二、追加元组、列表等:extend() 方法 追加元组中的所有元素: >>&...
  • 主要介绍了关于python列表增加元素的几种操作方法,主要有insert方法,extend方法和append方法,每种方法给大家介绍的非常详细,需要的朋友可以参考下
  • Python list列表添加元素的3种方法

    千次阅读 2021-04-27 03:11:57
    实际开发中,经常需要对Python列表进行更新,包括向列表添加元素、修改表中元素以及删除元素。本节先来学习如何向列表添加元素。《Python序列》一节告诉我们,使用+运算符可以将多个序列连接起来;列表是序列的...
  • python列表添加元素的三种方法

    千次阅读 2022-05-07 19:26:32
    列表是序列的一种,可以使用 + 进行链接,这样相当于在第一个列表的末尾添加了另一个列表。 list1 = [1,2,3,4] list2 = ['a','b','c'] list3 = list1 + list2 print(list3) 输出结果: [1,2,3,4,'a','b','c'] ...
  • 列表增加元素的三种方法

    万次阅读 2018-06-21 17:19:18
    列表增加元素的三种方法 ,分别是:append()、extend() 和 insert()。append() 方法是将参数作为一个元素增加到列表的末尾。extend() 方法是将参数作为一个列表去扩展列表的末尾。举例:1. >>&...
  • Python中列表元素增加的三种方式

    千次阅读 2022-05-11 15:20:17
    1.使用append函数向列表增加元素,把元素增加列表的末尾,可以增加任意类型的元素。 语法:list1.append(新增的列表元素) 示例: 2.使用insert函数向列表中新增元素,在指定的列表的索引位置的左边进行...
  • 创建列表 1.创建一个普通列表 >>> tabulation1 = ['大圣','天蓬','卷帘'] >>> tabulation1 ['大圣', '天蓬', '卷帘'] >>> tabulation2 = [72,36,18] >>> tabulation2 [72, 36, ...
  • python列表元素的5种添加方式

    千次阅读 2022-04-05 10:28:13
    除非必要,一般只在列表尾部添加或删除元素。 1.append() 是真正的在列表尾部添加新的元素,重复添加多次可依次在尾部添加,速度最快,推荐使用 a.append() 2.+运算符操作 a=a+[20] 创建新的列表对象,a的地址...
  • 1.向列表添加元素的方法:append()、extend()和insert()append()方法向列表添加元素时,是将新添加的元素放在列表的末尾例:>>> number=[1,2]>>> number[1, 2]>>> number.append(0)>...
  • 如何向空列表增加元素python

    万次阅读 2020-10-18 11:05:41
    [0, 1, 2, 3, 4] #forth way initList = [1,2,3,4,5] initList.insert(2, 10) print(initList) #[1, 2, 10, 3, 4, 5] 其中第一种和第二种方式差不多是一样的,取决于你最终想要的列表中包含的仅仅是元素还是列表套...
  • 增加列表元素的方法

    千次阅读 2020-07-24 10:15:20
    增加列表元素的方法时,系统提供了三种方法: 使用append函数 使用extend函数 使用insert函数 需要注意: 使用append函数、insert函数时,被插入对象是做一个整体而存在的。 因此,如果想将被插入对象的每一个...
  • 列表增加元素的三种方法

    万次阅读 2020-04-06 13:49:49
    (1)通过append方法可以向列表添加元素 (2)通过extend方法可以将另一个列表中的元素逐一添加到列表中 (3)通过insert( index, object )方法在指定位置index前插入元素object 1,通过 append方法向列表添加元素 ...
  • 1,Python append()方法添加元素append() 方法用于在列表的末尾追加元素,该方法的语法格式如下:listname.append(obj)其中,listname 表示要添加元素列表;obj 表示到添加到列表末尾的数据,它可以是单个元素,也...
  • 今天看完了 分支和循环和一丢丢的列表 分支部分 除了前面讲过的 if-else,还有elif(其实就是else-if简写,python比较喜欢简单,所以在python里就成了 elif)大致用法 比较简单。 而循环部分 除了 while,还讲了 for...
  • scala集合中添加元素In Scala, lists are immutable data structures in which adding new elements is not allowed. So, here we will solve this problem that is generally done in functional programming ...
  • 我有嵌套列表a = [(2,0),(3,0),(4,2),(10,3),(11,5)]我要做的是在n位置添加内部元组(0,n),其中{}是{}中缺失元素的位置。每个内部列表中的第二个元素应该以1为增量递增,如果存在间隙,则应该在该间隙处插入(0,n)。...
  • l=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']现在假设我想将l [2:6]组合成这样的单个元素:>>> l['0', '1', '2345', '6', '7', '8', '9']我能够分步进入一个新列表,如下所示:>>> l2=...
  • python中list列表添加元素的三种方法

    千次阅读 2022-04-27 12:53:52
    列表是序列的一种,所以也可以使用 + 进行链接,这样就相当于在第一个列表的末尾添加了另一个列表 示例: a_list = ["city","kill",11,98] b_list = [12,55,"joke",90] sum_list = a_list + b_list print(sum_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 797,649
精华内容 319,059
关键字:

列表增加元素