python 一维数组赋值_python二维数组转化为一维数组

python 一维数组赋值_python二维数组转化为一维数组当我们使用arr=[[0]*5]*5 初始化一个二维数组时,会得到一个5*5的数组,In[1]:arr=[[0]*5]*5In[2]:arrOut[2]:[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]然后对这个二维数组某个元素进行赋值…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

当我们使用arr = [[0]*5]*5 初始化一个二维数组时,会得到一个5*5的数组,

In [1]: arr = [[0]*5]*5
In [2]: arr
Out[2]: 
[[0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]

Jetbrains全家桶1年46,售后保障稳定

然后对这个二维数组某个元素进行赋值,会发现整列都会被赋值,

In [3]: arr[0][0] = 1
In [4]: arr
Out[4]: 
[[1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0]]

这是因为 [[0]*5]*5 表示的是指向 [0]*5 这个列表的引用,所以当你修改某一个值时,整个列表都会被改变。

换一种初始化方式可以解决这个问题,

In [1]: arr = [[0]*5 for _ in range(5)]
In [2]: arr
Out[2]: 
[[0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]

In [3]: arr[0][0] = 1
In [4]: arr
Out[4]: 
[[1, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210076.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows错误恢复如何解决_0xc0000006是什么错误

    windows错误恢复如何解决_0xc0000006是什么错误0xc0000005三种不同的情况下会发生错误常见原因修复访问错误解决方案1:停用程序的数据执行保护(DEP)解决方案2:在Windows注册表中停用AppInit_DLLs机制解决方案3:执行恶意软件扫描解决方案4:运行Windows内存诊断程序并替换任何有缺陷的RAM启动应用程序时如何解决0xc0000005错误解决方案1:更新设备驱动程序解决方案2:修复BCD文件安装Windows时出现0xc0000005错误:最佳解决方案解决方案1:删除并重新创建Windows硬盘分区解决方案2:更换有缺陷的硬件

    2022年10月4日
    2
  • 查看sqlite_sqlite数据库手机版

    查看sqlite_sqlite数据库手机版这是什么用于SQLite的数据库浏览器(DB4S)是一种高质量,可视化的开源工具,用于创建,设计和编辑与SQLite兼容的数据库文件。DB4S适用于想要创建,搜索和编辑数据库的用户和开发人员。DB4S使用熟悉的类似电子表格的界面,并且不必学习复杂的SQL命令。控件和向导可供用户使用:创建并压缩数据库文件 创建,定义,修改和删除表 创建,定义和删除索引 浏览,编辑,添加和删除记录 搜索记录 导入和导出记录为文本 从CSV文件导入和导出表格 从/到SQL转储文件导入和导出数据库

    2022年9月8日
    2
  • 常用正则表达式—邮箱(Email)

    常用正则表达式—邮箱(Email)本文针对有一点正则基础的同学,如果你对正则一无所知,请移步“正则表达式30分钟入门教程”学习。要验证一个字符串是否为邮箱的话,首先要了解邮箱账号的格式。我尝试过在网上找出一个标准的格式,但是很遗憾我没有找到。我也尝试使用RFC标准来判断邮箱的格式,但是也没有结果。网上些博客说不应该使用RFC标准来验证邮箱是否合法,有兴趣的可以看看“isthisemailval

    2022年4月4日
    612
  • nvidia卸载程序失败_英伟达显卡驱动安装失败怎么办?[通俗易懂]

    nvidia卸载程序失败_英伟达显卡驱动安装失败怎么办?[通俗易懂]一般用户重新安装系统或者更新显卡驱动后,安装光盘中的英伟达显卡驱动,安装后却提示“NVIDIA安装程序失败”,遇到这样的问题,很多用户会选择重启后重新安装一次,不过都不能解决安装电脑显卡驱动安装失败的故障,下面华海电脑网小编给大家几个解决方法:安装显卡驱动安装失败注意:一定要你显卡型号对应驱动,否则不可能成功的,推荐使用“驱动精灵”或者“驱动人生”自动搜索对应显卡驱动下载并且安装。英伟达显卡驱动安…

    2022年5月16日
    73
  • 计算机组成原理(哈工大)学习笔记

    计算机组成原理(哈工大)学习笔记文章目录计算机组成原理一 计算机系统概论 1 1 计算机系统简介一 计算机的软硬件概念二 计算机系统的层次结构三 计算机体系结构和计算机组成 1 2 计算机的基本组成 1 3 计算机硬件的主要技术指标一 机器字长二 运算速度三 存储容量三 系统总线总线的基本概念总线的分类总线的特性和性能指标总线控制 重点 四 存储器 1 概述一 存储器分类二 存储器的层次结构 2 主存储器 1 概述 2 半导体存储芯片简介 3 随机存取存储器 RAM 4 只读存储器 ROM 5 存储器与 CPU 的连接 6 存储器的校验 7 提高访存速度的措施 3

    2025年6月22日
    5
  • hi3531dv200开发板_hi3516dv300参数

    hi3531dv200开发板_hi3516dv300参数前言安装环境,默认你是有Linux系统的,不管是VM虚拟机还是docker还是WSL,也不对系统进行要求。此教程默认环境如下:Ubuntu18.04、Anaconda(Python3.8.5)、Anaconda安装不同版本Python

    2022年9月23日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号