在Python中初始化二维数组

2024-02-20

我在 python 中初始化二维数组时遇到问题。我想要一个 6x6 阵列,我做到了

arr = [[None]*6]*6

但是当我这样做时:

>>> arr[1][2]=10
>>> arr
[[None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None]]

请注意,我只设置了 1 项,并且它在所有行上“复制”。怎么了?我认为这与其引用相同的列表有关,但我该如何解决这个问题?

我估计

for key, _ in algos.items():
    algoData[key] = []
    for i in range(0,6):
        algoData[key].append([])
        for j in range(0,6):
            algoData[key][i].append(None)

可以,但是初始化一个空的 6x6 数组似乎很长,如果我想要一个 10000x10000 数组怎么办,效率会很低吗?

UPDATE

我还可以初始化二维数组的字典吗?我有一本字典,比如:

algos = { "FIFO": ..., "LRU": ..., "Random": ... }

我想初始化一个字典,如下所示:

algoData = { "FIFO": 2D arr, "LRU": 2D arr, "Random": 2D arr }

@Cameron 建议您使用 NumPy 处理数值数据数组是正确的。对于你问题的第二部分,〜Niklas B. 的建议是正确的defaultdict.

没有涵盖的是why [[None]*6]*6行为奇怪。

答案是[None]*6创建一个包含 6 个列表None包含在其中(如您所料),但是[list]*6不制作六份独立的副本list- 它制作了六份参考 to the same list.

惯用的Python有一个部分可以更好地解释这一点:“其他语言有变量 - Python 有名称” http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中初始化二维数组 的相关文章

  • 如何更改充当按钮的范围的文本

    我正在为自定义 Web 应用程序编写自动化测试 我遇到了无法更改跨度文本的问题 我尝试过使用 driver execute script 但没有运气 如果我更好地了解 javascript 这确实会有帮助 据我所知 您无法单击跨度 并且列表
  • 如何将条目中的部分文本加粗并更改其背景颜色?

    我正在创建一个基于 Tkinter 的 GUI 它有一个 Entry 小部件 我想将其文本的一部分加粗并更改其背景颜色 但我不知道我该怎么做 如果我使用文本小部件 我可以只使用标签 但看起来它们不能与条目小部件一起使用 此代码使用文本小部件
  • 在 Python 中使用 sec 函数的反函数

    我正在创建一个程序 用于计算从一定高度范围和设定初始速度发射射弹的最佳角度 在我需要使用的最终方程中 存在一个反 sec 函数 它导致了一些麻烦 我已经导入了数学并尝试使用 asec 无论如何 但是数学似乎无法计算反秒函数 我也明白 sec
  • Python 中 genfromtxt() 的可变列数?

    我有一个 txt具有不同长度的行的文件 每一行都是代表一条轨迹的一系列点 由于每条轨迹都有自己的长度 因此各行的长度都不同 也就是说 列数从一行到另一行不同 据我所知 genfromtxt Python 中的模块要求列数相同 gt gt g
  • python中函数变量的作用域

    假设我们有两个函数 def ftpConnect ftp FTP server ftp login ftp cwd path def getFileList ftpConnect files ftp nlst print files 如果我
  • 当x轴不连续时如何删除冗余日期时间 pandas DatetimeIndex

    我想绘制一个 pandas 系列 其索引是无数的 DatatimeIndex 我的代码如下 import matplotlib dates as mdates index pd DatetimeIndex 2000 01 01 00 00
  • 如何在 Windows 上使用 Python 3.6 来安装 Python 2.7

    我想问一下如何使用pip install对于 Python 2 7 当我之前安装并使用 Python 3 6 时 我现在必须使用 Windows 上的 Python 版本 pip install 继续安装 Python 3 6 我需要使用以
  • Python:随时接受用户输入

    我正在创建一个可以做很多事情的单元 其中之一是计算机器的周期 虽然我将把它转移到梯形逻辑 CoDeSys 但我首先将我的想法放入 Python 中 我将进行计数 只需一个简单的操作 counter 1 print counter 跟踪我处于
  • 反加入熊猫

    我有两个表 我想附加它们 以便仅保留表 A 中的所有数据 并且仅在其键唯一时添加表 B 中的数据 键值在表 A 和 B 中是唯一的 但在某些情况下键将出现在表 A 和 B 中 我认为执行此操作的方法将涉及某种过滤联接 反联接 以获取表 B
  • 使用Python将图像转换为十六进制格式

    我的下面有一个jpg文件tmp folder upload path tmp resized test jpg 我一直在使用下面的代码 Method 1 with open upload path rb as image file enco
  • Python While 循环,and (&) 运算符不起作用

    我正在努力寻找最大公因数 我写了一个糟糕的 运算密集型 算法 它将较低的值减一 使用 检查它是否均匀地划分了分子和分母 如果是 则退出程序 但是 我的 while 循环没有使用 and 运算符 因此一旦分子可整除 它就会停止 即使它不是正确
  • 字典的嵌套列表

    我正在尝试创建dict通过嵌套list groups Group1 A B Group2 C D L y x 0 for y in x if y x 0 for x in groups d k v for d in L for k v in
  • 字典中列表中仅有的几个索引的总和

    如果我有这种类型的字典 a dictionary dog white 3 5 black 6 7 Brown 23 1 cat gray 5 6 brown 4 9 bird blue 3 5 green 1 2 yellow 4 9 mo
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • Lisp 中的十进制到二进制 - 制作非嵌套列表

    当达到我的递归情况时 我使用list将未来结果附加到当前结果 但由于递归 我最终得到一个嵌套列表 当我有一个导致递归超过五次的数字时 这会导致错误 任何想法如何我可以在一个简单的非嵌套列表中获得结果 例如 CL 用户 100 8 gt BI
  • 使用 lambda 函数更改属性值

    我可以使用 lambda 函数循环遍历类对象列表并更改属性值 对于所有对象或满足特定条件的对象 吗 class Student object def init self name age self name name self age ag
  • 是否可以强制浮点数的指数或有效数匹配另一个浮点数(Python)?

    这是我前几天试图解决的一个有趣的问题 是否可以强制一个的有效数或指数float与另一个人一样float在Python中 出现这个问题是因为我试图重新调整一些数据 以便最小值和最大值与另一个数据集匹配 然而 我重新调整后的数据略有偏差 大约小
  • Scrapy 蜘蛛无法工作

    由于到目前为止没有任何效果 我开始了一个新项目 python scrapy ctl py startproject Nu 我完全按照教程操作 创建了文件夹和一个新的蜘蛛 from scrapy contrib spiders import
  • Pandas 在特定列将数据帧拆分为两个数据帧

    I have pandas我组成的 DataFrameconcat 一行由 96 个值组成 我想将 DataFrame 从值 72 中分离出来 这样 一行的前 72 个值存储在 Dataframe1 中 接下来的 24 个值存储在 Data
  • PyQt 中的线程和信号问题

    我在 PyQt 中的线程之间进行通信时遇到一些问题 我使用信号在两个线程 发送者和监听者 之间进行通信 发送者发送消息 期望被监听者接收 但是 没有收到任何消息 谁能建议可能出了什么问题 我确信这一定很简单 但我已经环顾了几个小时但没有发现

随机推荐

  • 如何跳转到 RichTextBox 中的特定行?

    我正在寻找如何跳转到特定行的示例代码RichTextBox in WPF 我不知道如何做到这一点 在 winForms 中它非常简单 因为我可以自由设置 SelectionStart 和 Selection Length 这与 WPF 中不
  • 当[:punct:]太多时[重复]

    这个问题在这里已经有答案了 我正在清理 R 中的文本字符串 我想删除所有标点符号except撇号和连字符 这意味着我无法使用 punct 字符类 除非有一种说法 punct but not lt gt 并且反引号必须出来 对于上述大多数情况
  • 在 Visual Studio 2010 C/C++ 中,“重新扫描解决方案”操作有何作用?

    我正在尝试编译第三方项目 但遇到一些链接问题 我在解决小问题时没有遇到太大麻烦 但我注意到它们是项目或解决方案的上下文菜单中的 重新扫描解决方案 选项 我点击了它 但它似乎没有做任何事情 它到底有什么作用 此命令更新项目浏览数据库中的过时文
  • 如何使用 sed 只删除三个空行?

    如何使用 sed 只删除三个空行 例如 我的文本 txt line1 line2 line3 line4 使用 sed 我希望结果看起来像这样 我的文本 txt line1 line2 line3 line4 我能够删除双空行 sed i
  • Azure SignalR 服务连接未处于活动状态

    我从 2 4 0 更新了我们的信号包并添加了RunAzureSignalR代替RunSignalR 在 de 中添加了此代码Startup cs app Map signalr map gt var hubConfiguration new
  • LISP - 如何获得嵌套列表的平均长度?

    我有个问题 我需要从此列表中获取平均长度 1 2 3 4 5 6 7 8 9 应该是2 我不知道从哪里开始 我试图得到 1 2 3 4 5 6 7 8 9 from 1 2 3 4 5 6 7 8 9 但我失败了 因为 reduce app
  • Google 是否提供可用于获取手机位置的 API?

    我的智能手机向 Google G 和 Android 设备管理器 报告我的位置 我想从网站 程序中读取该位置来绘制我的位置 我可以使用智能手机上的另一个应用程序进行额外的跟踪 但这往往会消耗相当多的电池 有两个应用程序进行跟踪 由于纬度已被
  • 由于 Windows 之前冻结,Outlook 宏被禁用

    我们公司在每台安装 Outlook 的计算机上都使用 VBA 宏 宏使用证书进行数字签名以确保安全 该证书是通过以下方式生成的自认证程序应用 当我们在 Outlook 中的 VBA 项目 包含宏 上添加数字签名时 我们选择之前生成的证书 并
  • 确定 CALayer 旋转了多少

    我有一个程序 其中 CALayer 必须旋转到特定值 如何确定 CALayer 的当前旋转 我有一个旋转图层的 UIRotationGestureRecognizer void handleGesture UIGestureRecogniz
  • 移动Android View并防止onDraw被一遍又一遍地调用

    我正在延长View 类 我所说的MyView 我添加了一些属性 这些属性基本上说明了在对象上绘制的内容 并处理它 我每隔几毫秒移动一次此类的对象 这效果很好 我在用着this layout left top right bottom 移动
  • Spark 连接速度呈指数级缓慢

    我正在尝试连接两个 Spark RDD 我有一个链接到类别的事务日志 我已将交易 RDD 格式化为以类别 id 作为键 transactions cat take 3 u 707 u 86246 u 205 u 7 u 707 u 1078
  • 为什么我的 d3 力导向图不显示边缘?

    我使用 d3 创建了一个简单的力导向图 http goo gl afHTD http goo gl afHTD 为什么图表的边缘不显示 这是我的整个 HTML 文件 当然 您也可以通过在我的链接页面上查看源代码来查看它并修改它 它基于 d3
  • 使用错误的表别名生成查询的原则

    我正在尝试做一个简单的 gt find 使用原则 规则 2 5 1 查询非常简单 this gt get order repository gt find 10 但这会生成一个复杂的查询 选择 s0 number AS number 0 s
  • SYSTEM_HANDLE_INFORMATION结构

    这个结构从何而来 我知道它是在著名的 ntdll h 中声明的 并且是未记录的 Windows API 的一部分 但不同版本的windows之间不是有差异吗 有没有办法从工作系统中转储这个结构 我在 Windbg 中尝试了 dt SYSTE
  • 如何复制内存

    说我有 unsigned char varA varB varC varA malloc 64 varB malloc 32 varC malloc 32 我怎样才能把first将 32 字节的 varA 放入 varB 中last32字节
  • 编写带有垂直标题的 HTML 表格的最常见方法? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 您编写具有垂直标题的 HTML 表格的首选方式是什么 通过垂直标题我的意思是表格有标题 th 标签位于左侧 通常 Header 1数据数据数据
  • 最大连续数

    我正在练习两个指针技术来解决最大连续数 LeetCode https leetcode com problems max consecutive ones 给定一个二进制数组 找出该数组中连续 1 的最大数量 示例1 Input 1 1 0
  • Html-Webpack-Plugin 模板:模块构建失败:SyntaxError:意外的标记

    当我尝试使用 index ejs 模板文件使用 html webpack plugin 进行构建时 会引发以下错误 即使我尝试加载为 html 文件或安装 ejs loader 仍然失败 我不确定 ejs loader 是否与 html w
  • mysql 错误 2002 (HY000): 无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

    我使用 在 Ubuntu 13 上 安装了 MYSQL sudo apt get install mysql 但跑完之后 mysql u root p 然后输入密码就会出现错误 ERROR 2002 HY000 无法通过套接字连接到本地 M
  • 在Python中初始化二维数组

    我在 python 中初始化二维数组时遇到问题 我想要一个 6x6 阵列 我做到了 arr None 6 6 但是当我这样做时 gt gt gt arr 1 2 10 gt gt gt arr None None 10 None None