千家信息网

python如何实现列表中的增操作

发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,小编给大家分享一下python如何实现列表中的增操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!列表中的增对列表的增加操
千家信息网最后更新 2024年11月16日python如何实现列表中的增操作

小编给大家分享一下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 copylist4 = copy.copy(list1) # 浅拷贝# 如果一个列表中的元素包含可变对象,要完成复制列表,需要用深拷贝list5 = ["Will", 1, ["Python", "Java", "C++"]]list6 = copy.deepcopy(list5)

为什么在包含不可变对象的时候,需要用到深拷贝呢?

上面我们说过,浅拷贝只拷贝不可变对象。当列表中存在可变对象时,我们可以发现其引用 id 是一样的,即它们是同一个对象,因此对 list5 的操作会影响到 list6 。而在深拷贝中,对于可变对象,在拷贝的新列表中会生成一个新的对象,所以对 list6 的修改不会影响到 list5 。

id(list5[2]) # 2195936916360id(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如何实现列表中的增操作"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0