Python列表的复制,Python将一个列表的数据复制到另一个列表中
本文主要介绍python数组的拷贝和列表中的pop。Python中复制数组有三种方法,分别是只使用赋值运算符、浅层复制和深层复制。以下详情,请各位朋友参考。
00-1010 1使用赋值运算符2浅层复制3深层复制4深层复制高级让我们看看如何在 Python 中复制数组。 有 3 种复制数组的方法:
只需使用赋值操作符。浅层拷贝和深层拷贝
目录
我们可以使用赋值操作符(=)来创建数组的副本。
语法:
新阵列=旧阵列
在Python中,赋值语句不复制对象,它们在目标和对象之间创建一个绑定。当我们使用=运算符时,用户认为它会创建一个新对象;事实并非如此。它只创建一个共享原始对象引用的新变量。
示例:
来自numpy import *
arr1=array([2,6,9,4])
打印(id(arr1))
arr2=arr1
打印(id(arr2))
arr1[1]=7
打印(arr1)
打印(arr2)
我们可以看到两个数组引用了同一个对象。
1 使用赋值运算符
浅层拷贝意味着构造一个新的集合对象,然后用在原始对象中找到的子对象的引用填充它。复制过程不会重复,因此不会创建子对象本身的副本。在浅层复制的情况下,一个对象的引用被复制到另一个对象中。这意味着对对象副本的任何更改都将反映在原始对象中。我们将使用view view()函数来实现浅层复制。
示例:
来自numpy import *
arr1=array([2,6,9,4])
打印(id(arr1))
arr2=arr1.view()
打印(id(arr2))
arr1[1]=7
打印(arr1)
打印(arr2)
虽然这一次两个数组引用的是不同的对象,但是当一个数组的值改变时,另一个数组的值也会改变。
2 浅拷贝
深度复制是一个复制过程递归发生的过程。这意味着首先构建一个新的存储对象,然后用原始对象中找到的子对象的副本递归填充它。在深度复制的情况下,将一个对象的副本复制到另一个对象。这意味着对对象副本所做的任何更改都不会反映在原始对象中。我们将使用copy()函数来实现深度复制。
示例:
来自numpy import *
arr1=array([2,6,9,4])
打印(id(arr1))
arr2=arr1.copy()
打印(id(arr2))
arr1[1]=7
打印(arr1)
打印(arr2)
这次在一个数组中所做的更改不会映射到其他数组中。
3 深度拷贝
如果您正在处理numpy矩阵,numpy.copy()将为您提供一个深层副本。但是,如果您的矩阵是列表的列表,那么在将图像旋转90度的任务中可以考虑使用以下方法:
示例:
导入副本
def rotate_matrix(图像):
警察
y_image_one = copy.deepcopy(image)
print("Original", matrix)
print("Copy of original", copy_image_one)
N = len(matrix)
for row in range(N):
for column in range(N):
copy_image_one[row][column] = image[row][N-column-1]
print("After modification")
print("Original", matrix)
print("Copy", copy_image_one)
copy_image_two = [list(row) for row in copy_image_one]
for row in range(N):
for column in range(N):
copy_image_two[column][row] = copy_image_one[row][column]
return copy_image_two
if __name__ == "__main__":
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
print("Rotated image", rotate_matrix(matrix))
Python列表POP()是Python中的内置函数,该函数删除并返回列表或给定索引值的最后一个值。
语法:
list_name.pop(index)
参数:
- index(可选) - 弹出并删除索引处的值。 如果未给出索引,则会弹出并删除最后一个元素。
返回值:列表中的最后一个值或给定的索引值。
例外:当索引超出范围时,它会返回IndexError
。
例一:
list1 = [ 1, 2, 3, 4, 5, 6 ]print(list1.pop())
print("New List after pop : ", list1, "\n")
list2 = [1, 2, 3, (cat, bat), 4]
print(list2.pop())
print(list2.pop())
print(list2.pop())
print("New List after pop : ", list2, "\n")
例二:
list1 = [ 1, 2, 3, 4, 5, 6 ]print(list1.pop(), list1)
print(list1.pop(0), list1)
例三:
list1 = [ 1, 2, 3, 4, 5, 6 ]print(list1.pop(8))
例四:
fruit = [[Orange,Fruit],[Banana,Fruit], [Mango, Fruit]]consume = [Juice, Eat]
possible = []
for item in fruit :
for use in consume :
item.append(use)
possible.append(item[:])
item.pop(-1)
print(possible)
到此这篇关于python数组的复制与列表中的pop的文章就介绍到这了,更多相关python数组复制与pop()内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。