python建立二维数组问题

【华为OD机试真题 Python】探索地块建立 给一块nm的地块,相当于nm的二维数组,每个元素的值表示这个小地块的发电量;求在这块地上建立正方形的边长为c的发电站,发电量满足目标电量k的地块数量。 阅读详情

在python中定义二维数组

 

发表于 http://liamchzh.0fees.net/?p=234&i=1

一次偶然的机会,发现python中list非常有意思。

先看一段代码

[py]
array = [0, 0, 0]
matrix = [array*3]
print matrix
## [[0,0,0,0,0,0,0,0,0]][/py]

这段代码其实没有新建一个二维数组

再看一段代码

[py]
array = [0, 0, 0]
matrix = [array] * 3
print matrix
## [[0, 0, 0], [0, 0, 0], [0, 0, 0]][/py]

咋一看这段代码应该创建一个二维数组了

测试一下

[py]
matrix[0][1] = 1
print matrix
## [[0, 1, 0], [0, 1, 0], [0, 1, 0]][/py]

照理matrix[0][1]修改的应该只是二维数组中的一个元素,但是测试结果表明,修改的是每个List的第二个元素。
有问题看文档,然后我找到了The Python Standard Library
其中5.6. Sequence Types是这样描述的:

Note also that the copies are shallow; nested structures are not copied. This often haunts new Python programmers; consider:
>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]]

What has happened is that [[]] is a one-element list containing an empty list, so all three elements of [[]] * 3 are (pointers to) this single empty list. Modifying any of the elements of lists modifies this single list. You can create a list of different lists this way:

>>>
>>> lists = [[] for i in range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]
也就是说matrix = [array] * 3操作中,只是创建3个指向array的引用,所以一旦array改变,matrix中3个list也会随之改变。

那如何才能在python中创建一个二维数组呢?
例如创建一个3*3的数组
方法1 直接定义

[py]matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]][/py]

方法2 间接定义

matrix = [[0 for i in range(3)] for i in range(3)]

【华为OD机试真题 Python语言】179、探索地块建立 | 机试真题+思路参考+代码解析 给一块 n * m 的地块,相当于n * m的二维数组,每个元素的值表示这个小地块的发电量; >  求在这块地上建立正方形的边长为c的发电站,发电量满足目标电量k的地块数量 阅读详情

相关推荐

Windows 10/11系统下TurboDesign 6.4.0完整安装指南(附序列号+破解补丁)

本文提供Windows 10/11系统下TurboDesign 6.4.0的完整安装指南,涵盖系统环境预检、安装程序部署、序列号处理及破解补丁部署等关键步骤。通过详细的安装教程和优化配置,帮助用户高效完成这款涡轮机械设计软件的安装与调试,解决常见兼容性问题。

s4t5u6v的博客 1030

chatgpt赋能python:Python如何创建二维数组

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

boRRjxBZRf的博客 5418

SPAD 单光子雪崩二极管

SPAD,全称为,是一种高灵敏度的光电探测器件,能够在非常低的光照水平下检测单个光子。SPAD在工作时,当一个光子被探测器吸收后,能够触发一个雪崩效应,产生一个可以被检测到的电信号。

qq_42786033的博客 1万+

Python 创建二维数组

Numpy 中有功能强大的 ndarray 对象,能创建 N 维的数组,另外还提供很多通用函数,支持对数组的元素进行操作、支持对数组进行算法运算以及提供常用的统计函数。其中 shape 是数组的一个属性,表示获取数组大小(有多少行,有多少列),如果是一维数组,则只显示(行,)。因为它创建出来的是单位矩阵,单位矩阵是正形矩阵,对角线的值均为 1,其他位置的值为 0。虽然 np.arange 和 np.linspace 起到的作用是一样的,都是创建等差数组,但是创建的方式是不同的。为什么会出现在这种情况呢?

flyingluohaipeng的博客 1万+

用WorkBuddy和ima搭建本地知识库:从概念到实操

在AI应用普及的今天,私有知识的高效管理与调用成为痛点。RAG(检索增强生成)技术通过将外部知识库与语言模型耦合,为精准问答提供了技术底座。然而,传统RAG方案往往涉及向量数据库、文本切分等复杂环节。一种更轻量的路径应运而生:借助WorkBuddy与ima的组合,将知识收集、语义检索与智能体工作流整合,让本地知识库真正服务于日常办公和研发场景。从概念到实操,系统解析这套轻量级方案的核心逻辑与配置方法,并对比重方案适用边界,帮助读者快速搭建属于自己的AI知识助手。

weixin_32830601的博客 420

不用加速器!Google Earth Pro登录失败自救手册:从服务器连接到地图加载的完整排错流程

本文详细解析了Google Earth Pro登录失败的常见问题及解决方案,包括服务器连接失败、地图加载异常等。通过基础排查、内置修复工具使用和高级配置调整,帮助用户无需加速器即可解决启动问题、黑屏和转圈圈等困扰,提升软件使用体验。

weixin_29227425的博客 485

Python如何创建二维数组和初始化

本篇讲授Python如何生成和操作二维数组。尤其是如何初始化二维数组,很有讲究。

oJinGangZuan的博客 11万+

用业务语义织就企业数据之网:SAP Datasphere 的定位、架构与落地场景全解析

SAP Datasphere作为SAP业务数据云的核心组件,通过语义层整合企业内外部数据,支持实时分析与AI应用。其核心功能包括数据集成、语义建模、虚拟化与仓库能力,通过Spaces实现资源隔离,Data Builder和Business Builder分别面向技术和业务建模。该平台与SAP HANA Cloud、SAC等深度集成,支持财务统一分析、供应链可视化等典型场景,并可通过BW bridge实现传统BW资产云化迁移。Datasphere强调开放互联,能与Databricks等生态伙伴协同,为企业提供

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1363

python建立二维数组的几种方法

寻址方式:test2[ i ][ j ]为test2这个列表的第 i 行 j 列。之前学C/C++建二维数组就是直接写,python就必须要自己建立。(字符串可以像数组一样直接下标寻址)建立一个m行n列的数组。

m0_60961645的博客 4303

微信支付PHP集成指南

完整实现建议参考微信支付官方文档,包含更多支付场景(H5支付、Native支付等)和安全性处理细节。微信支付在PHP中的集成主要涉及服务端接口的调用和支付流程的实现。

bqq506615054的专栏 158

手把手教你ensp仿真搭建校园网(含防火墙及无线网络)系列(一)校园网核心交换机配置

本系列博客将带你从零开始,使用 华为 eNSP(Enterprise Network Simulation Platform) 仿真搭建一个完整的校园网络,涵盖 核心层、汇聚层、接入层、防火墙安全策略、无线AC+AP组网 等实战场景。无论你是网络初学者还是希望深化实战经验的工程师,都能通过本教程掌握企业级网络的规划、配置与排错技巧。

echo的博客 3797

Python | 二维数组创建

目录 创建二维数组的方法: 直接创建: 列表生成法: numpy创建: 可能遇到的问题: 问题描述: 输出为: 原因: 生成方法更改为: 结果: 可以查看列表的id: 结果为: 创建二维数组的方法: 直接创建: test = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 列表生成法: test = [[] for i in range(m)] numpy创建: import numpy as np test = np.zeros((m,

黄佳俊的博客 5804

YOLO11涨点优化:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1869

python建立数组的问题

1.numpy模式 import numpy as np a=np.zeros((2,2)) print(a) print(a[1][1]) 2.但是一些考试,测试情景,无法使用numpy,那么怎么办呢? 比如我想要建立一个10*10的二维数组 resArr=[] for i in range(10): a= [1 for j in range(10)] resArr...

bufengzj的博客 268

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python 动态规划 旅行商问题_旅行商问题的动态规划解法

一个售货员必须访问n个城市,这n个城市是一个完全图,售货员需要恰好访问所有城市的一次,并且回到最终的城市。 城市与城市之间有一个旅行费用,售货员希望旅行费用之和最少。 旅行商问题是np问题,一般可以使用回溯法或者动态规划解决。class Solution:def __init__(self, X, start_node):self.X = Xself.start_node = start_node...

weixin_35779309的博客 922

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

100个python算法超详细讲解:约瑟夫环

1.问题描述 17世纪的法国数学家加斯帕在《数目的游戏问题》中讲到一个故事: 15个教徒和15个非教徒在深海上遇险,必须将一半的人投入海中,其余的 人才能幸免于难。于是想了一个办法,将30个人围成一个圆圈,从第一个 人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅 剩15个人为止。问怎样的排法才能使每次投入大海的都是非教徒? 2.问题分析 本题明显是一个约瑟夫问题。约瑟夫问题的求解方法很多,这里仅给 出一种实现方法。 问题描述中说“将30个人围成一个圆圈”,据此可以考虑使用一个循环 的链来表

Lee达森的博客 2036

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

2022蓝桥杯省赛——砍竹子

从评测用例规模中我们可以看到,竹子的最大高度为10^18,通过循环我们易求出二维数组的列数最大值是m=6。魔法可以对连续的一 段相同高度的竹子使用, 假设这一段竹子的高度为 H, 那么用一次魔法可以把这一段竹子的高度都变为。再回来看第i和第i-1棵竹子在砍的时候是否有出现相同的高度,每出现一次计数器减1。这天, 小明在砍竹子, 他面前有 n 棵竹子排成一排,一开始第 i 棵竹子的 高度为 hi​。这样一来,我们就能很直观地看出来,有两次砍竹子的动作是多余的,于是执行两次计数器减操作。共需要 5 步完成。

Nash_SP的博客 6153

多维多重背包问题_令人头疼的背包九讲(3)多重背包问题

微信公众号:Jerry的算法和NLP背包问题是一个经典的动态规划模型。它既简单形象容易理解,又在某种程度上能够揭示动态规划的本质,故不少教材都把它作为动态规划部分的第一道例题.| 题目输入样例4 61 2 32 4 13 4 34 5 2输出样例:10分析与零一背包不同的是,零一背包中的物品是不可以重复拿取的,只可以拿取当前物品或者不拿取当前物品,不可以拿取多个,完全背包的物品是可以任意拿取多个的...

weixin_39627408的博客 788

Python栈的基本操作与迷宫问题

Python---栈的数据结构的定义(列表)和对该数据结构的操作以及栈的思想:LIFO,后进先出。

weixin_61378281的博客 244

LeetCode刷题——建立四叉树#427#Medium

建立四叉树的题目如下图,该题属于树类和数组类型的题目,主要考察对于搜索方法的使用和树结构的理解。本文的题目作者想到2种方法,分别是递归方法和二维前缀和方法,其中递归方法使用Java进行编写,而二维前缀和方法使用Python进行编写,当然这可能不是最优的解法,还希望各位大佬给出更快的算法。

喷火龙与水箭龟的博客 326

leetcode:6. Z 字形变换

思路: 简单模拟,注意特殊情况numsrow = 1 src: class Solution: def convert(self, s: str, numRows: int) -> str: len1 = len(s) cnt = 0 i = 0 flag = "down" lists = [[] for i in range(numRows)]#二维数组的建立 while cnt < le.

小楼一夜听春雨 315

【leetcode】奶酪迷宫问题

时间限制: 3000MS内存限制: 589824KB题目描述:一只聪明的老鼠发现了一个三角形的奶酪迷宫。这个迷宫有若干个小房间,每个小房间有若干块大小相等的小奶酪(每个房间至少有一块奶酪)。奶酪迷宫的构造如下: (1) 奶酪迷宫一共有N行,第1行有一个小房间,第2行有两个房间,第3行有三个小房间,......第N行有N个小房间。(2) 所有的小房间都是从第1列开始进行排列的。(3) 奶酪迷宫的入口是第1行的那个小房间。

C++,Java,Python,C#编程选手,偶尔刷刷leetcode 539

python输入二维数组_Python输入二维数组方法

Python输入二维数组方法前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘。这里以输入1-9,3*3矩阵为例n=int(input())line=[[0]*n]*nfor i in range(n):line[i]=input().split(' ')print(line)使用数据转换为int即可!以上这篇Python输入二维数组方法就是小编分享给大家的全部内容了,希望能给大家...

weixin_39699746的博客 5097

python给矩阵赋值_解决Python二维数组赋值问题

解决Python二维数组赋值问题当我们采用s=[[0]*3]*2初始化一个数组,然后对s[0][0]进行赋值,改变的是第一列所有的值。因为用s = [[0]*3]*2 初始化数组,他表示的是指向这个列表的引用,所以当你修改一个值的时候,整个列表都会修改。换一种初始化方式,就可以解决这个问题:写这个主要是因为今天在写【机器人的运动范围问题】:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开...

weixin_39976166的博客 5687
上一篇: 1025. 反转链表 (25) python篇
下一篇: 单词长度
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值