iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python数组的复制与列表中的pop
  • 669
分享到

python数组的复制与列表中的pop

2024-04-02 19:04:59 669人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1 使用赋值运算符2 浅拷贝3 深度拷贝4 深度拷贝进阶让我们看看如何在 Python 中复制数组。 有 3 种复制数组的方法: 只需使用赋值运算符。浅拷贝深拷贝 1 使用赋值运

让我们看看如何在 Python 中复制数组。 有 3 种复制数组的方法:

  • 只需使用赋值运算符。
  • 浅拷贝
  • 深拷贝

1 使用赋值运算符

我们可以使用赋值运算符 (=) 创建数组的副本。

语法:

new_arr = old_ arr

python 中,Assignment 语句不复制对象,它们在目标和对象之间创建绑定。 当我们使用 = 运算符时,用户认为这会创建一个新对象; 好吧,事实并非如此。 它只创建一个共享原始对象引用的新变量。

示例:

from numpy import *                  
 
arr1 = array([2, 6, 9, 4])            
 
print(id(arr1))
 
arr2 = arr1                         
 
print(id(arr2))
 
arr1[1] = 7                        
 
print(arr1)
print(arr2)

python:数组的复制与列表中的pop()_赋值运算符

我们可以看到两个数组都引用了同一个对象。

2 浅拷贝

一个浅副本意味着构造一个新的集合对象,然后用对原始中找到的子对象的引用填充它。 复制过程不会重复,因此不会创建子对象本身的副本。 在浅拷贝的情况下,对象的引用被复制在另一个对象中。 这意味着对对象的副本所做的任何更改都会在原始对象中反映。 我们将使用视图view()函数来实现浅副本。

示例:

from numpy import *                 
  
arr1 = array([2, 6, 9, 4])
 
print(id(arr1))
 
arr2 = arr1.view() 
 
print(id(arr2))
  
arr1[1] = 7                       
  
print(arr1)
print(arr2)

python:数组的复制与列表中的pop()_数组_02

这次虽然2个数组引用了不同的对象,但在更改一个数组值的时候,另一个的值也被更改。

3 深度拷贝

深度拷贝是一个过程,其中复制过程递归地发生。 它意味着首先构建一个新的存储对象,然后用原稿中找到的子对象的副本递归地填充它。 在深度拷贝的情况下,将对象的副本复制到另一个对象中。 这意味着对对象的副本所做的任何更改都不反映在原始对象中。 我们将使用copy()函数来实现深度副本。

示例:

from numpy import *                 
  
arr1 = array([2, 6, 9, 4])
 
print(id(arr1))
 
arr2 = arr1.copy()
 
print(id(arr2))
  
arr1[1] = 7                       
  
print(arr1)
print(arr2)

python:数组的复制与列表中的pop()_数组_03

这次在一个数组中所做的更改不会映射在其他数组中。

4 深度拷贝进阶

如果您正在处理numpy矩阵,则numpy.copy()将为您提供深度拷贝。 但是,如果您的矩阵是列表的列表,那么请考虑旋转图像90度的任务中使用以下方法:

示例:

import copy
 
def rotate_matrix(image):
    copy_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()_数组_04

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")

python:数组的复制与列表中的pop()_数组_05

例二:

list1 = [ 1, 2, 3, 4, 5, 6 ]
 
print(list1.pop(), list1)

print(list1.pop(0), list1)

python:数组的复制与列表中的pop()_赋值运算符_06

例三:

list1 = [ 1, 2, 3, 4, 5, 6 ]
print(list1.pop(8))

python:数组的复制与列表中的pop()_python_07

例四:

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_08

到此这篇关于python数组的复制与列表中的pop的文章就介绍到这了,更多相关python数组复制与pop()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python数组的复制与列表中的pop

本文链接: https://www.lsjlt.com/news/117168.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python数组的复制与列表中的pop
    目录1 使用赋值运算符2 浅拷贝3 深度拷贝4 深度拷贝进阶让我们看看如何在 Python 中复制数组。 有 3 种复制数组的方法: 只需使用赋值运算符。浅拷贝深拷贝 1 使用赋值运...
    99+
    2024-04-02
  • python中列表对象pop()方法的使用说明
    目录列表对象pop()方法的使用python中pop什么意思举个例子列表对象pop()方法的使用 pop() 方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。 ...
    99+
    2024-04-02
  • python列表的切片与复制示例分析
    大家可以先参考python切片复制列表的知识点详解这篇内容,对知识点用法有个了解 切片,即处理一个完整列表中部分数据。 语法 变量[起始索引:终止索引:步长] 首先创建一个字符串...
    99+
    2024-04-02
  • python中的元组与列表及元组的更改
    目录1.列表(List)2.元组(Tuple)1.列表(List) 元组是由一对方括号构成的序列。列表创建后,可以根据自己的需要改变他的内容 >>> list=[1...
    99+
    2024-04-02
  • python列表与元组的用法
    python列表与元组的用法 目录: 列表的用法: 1.增   append   +    extend 2.删  del    remove 3.改   insert 4.查  index 5.反向  reverse 6.排序   so...
    99+
    2023-01-30
    列表 python
  • Numpy数组与列表的用法
    本篇内容主要讲解“Numpy数组与列表的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Numpy数组与列表的用法”吧! 1. 本文介绍今天为大家介绍以下内容: Ⅰ nda...
    99+
    2023-06-15
  • JavaScript数组中的深复制与浅复制是什么
    本篇内容介绍了“JavaScript数组中的深复制与浅复制是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • python中数组和列表的简单实例
    目录list & arraypython列表和Numpy数组的区别总结#环境win64+anaconda+python3.6 list & array (1)list...
    99+
    2024-04-02
  • javascript数组中的reduce方法和pop方法
    目录一、reduce方法1直接vs打开2代码部分3运行结果二、pop方1直接vs打开2代码部分3运行结果前言: 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说fo...
    99+
    2024-04-02
  • python3-列表的深浅复制
    # Auther: Aaron Fannames = ["aaron", "alex", "james", "meihengfan"]#复制一份列表#浅复制 (注意,这只是一个浅复制,只能复制第一层列表里面的东西,如果列表里面还有一层列表,...
    99+
    2023-01-31
    深浅 列表
  • python元组与列表的区别是什么
    Python中的元组(tuple)和列表(list)是两种不同的数据结构,它们之间的主要区别在于以下几点: 不可变性:元组是不可...
    99+
    2024-03-15
    python
  • python中数组和列表怎么用
    这篇文章主要介绍python中数组和列表怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!#环境win64+anaconda+python3.6list & array(1)list不具有array的全部属...
    99+
    2023-06-29
  • redis列表怎么复制到另外的列表
    在Redis中,可以使用`LRANGE`命令获取源列表的所有元素,然后使用`RPUSH`命令将这些元素依次添加到目标列表中,实现将一...
    99+
    2023-08-24
    redis
  • Python列表中如何引用数组
    这篇文章给大家介绍Python列表中如何引用数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python中没有数组的数据结构,但列表很像数组,如:a=[0,1,2]这时a[0]=0, a[1]=1,&nbs...
    99+
    2023-06-17
  • python数组中怎么添加列表
    你可以使用append()方法向Python数组中添加列表。下面是一个示例:```python# 创建一个空列表my_list = ...
    99+
    2023-08-22
    python
  • Python中列表和元组的区别
    Python中列表和元组的区别 数据结构定义符号是否可变存储空间能否作为字典的键列表(list)[        ]可变,动态内存较大不能元组(tuple)(        )不可变,静态内存较小能         在Python中...
    99+
    2023-09-07
    python 数据结构
  • python的数组和列表如何使用
    Python中的数组和列表都可以用来存储多个值,但有一些不同之处。列表是Python中最常用的数据类型之一,它可以存储任意类型的值,...
    99+
    2023-09-27
    python
  • python中列表和numpy数组的区别是什么
    这期内容当中小编将会给大家带来有关python中列表和numpy数组的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学...
    99+
    2023-06-14
  • Python数据结构之列表与元组详解
    目录Python 列表(list):1.序列介绍:2.列表的概述:3.创建一个列表4.列表的索引5.列表的分片6.列表的分片赋值7.循环遍历列表8.查找元素与计数9.列表增加元素:1...
    99+
    2024-04-02
  • python切片复制列表的知识点详解
    1、不指定开始和结束的索引[:],这样得到的切片就可以包含整个列表,然后给切片一个新的变量,从而实现复制列表。 2、创建原始列表的副本,两个列表的操作不会影响。 实例 names...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作