小编给大家分享一下python如何实现列表中的增操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
列表中的增
对列表的增加操作有两种,一种是创建一个新的列表,一种是在一个已有的列表中增加一个新元素。我们首先介绍如何创建一个新的列表:
# 创建一个空列表 list1 = [] # 创建一个默认值为0,长度为n的列表 list2 = [0] * n # 利用列表生成式创建列表 list3 = [i for i in range(10)] # 5*5 二维列表 list4 = [[i for i in range(5)] for j in range(5)] # 利用其他数据结构生成列表, list() 函数接收一个可迭代对象作为参数 tuple1 = (1, 2, 3) list5 = list(tuple1) # 字符串转化为列表 str1 = "I love code" # 每个元素作为列表中的一个元素 list6 = list(str1) # 按照指定字符分割 list7 = str1.split(" ") # ['I', 'love', 'code']
在编程过程中,有时我们需要对一个列表进行操作,但是列表是一个可变对象,对列表的操作往往会改变其本来的顺序结构。因此,当我们不想改变列表原有的顺序结构,我们需要对旧的列表进行一个拷贝,然后在新的列表上进行操作。拷贝存在两种,浅拷贝和深拷贝。可能有人会对这两种拷贝存在疑问,他们得到的列表的形式不是一样的嘛?
是的,它们在拷贝后得到的列表形式确实是一样的。但是在进行操作时,就会有很大的差别了,特别是当你的列表中存在可变对象时。我们只需要记住一点,浅拷贝只复制不可变对象,而深拷贝不仅复制不可变对象,还复制了可变对象。以下进行举例说明:
# 如果一个列表中的元素都是不可变对象,可以直接用浅拷贝 list1 = [1, 2, 'i'] list2 = list1[::1] # 浅拷贝 list3 = [i for i in list1] # 浅拷贝 import copy list4 = copy.copy(list1) # 浅拷贝 # 如果一个列表中的元素包含可变对象,要完成复制列表,需要用深拷贝 list5 = ["Will", 1, ["Python", "Java", "C++"]] list6 = copy.deepcopy(list5)
为什么在包含不可变对象的时候,需要用到深拷贝呢?
上面我们说过,浅拷贝只拷贝不可变对象。当列表中存在可变对象时,我们可以发现其引用 id 是一样的,即它们是同一个对象,因此对 list5 的操作会影响到 list6 。而在深拷贝中,对于可变对象,在拷贝的新列表中会生成一个新的对象,所以对 list6 的修改不会影响到 list5 。
id(list5[2]) # 2195936916360 id(list6[2]) # 2195936916744
对列表的另一种增加操作就是在已有的列表的基础上增加元素了,主要包括以下几种操作:
list1 = ["I"] # 在列表尾部增加一个新元素 list1.append("love") # 合并两个列表 list2 = ["Apple", 3] list1.extend(list2) # ["I", "love", "Apple", 3] list1 = list1 + list2 # ["I", "love", "Apple", 3] # 在指定位置插入元素 list1.insert(index=1, "not") # ["I", "not", "love", "Apple", 3]
以上是“python如何实现列表中的增操作”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。