如何在 Python 中创建二维数组

2023-12-22

我试图在 Python 中创建一个索引的二维数组,但我总是以某种方式遇到错误。

下面的代码:

#Declare Constants (no real constants in Python)
PLAYER = 0
ENEMY = 1
X = 0
Y = 1
AMMO = 2
CURRENT_STATE = 3
LAST_STATE = 4

#Initilise as list
information_state = [[]]
#Create 2D list structure
information_state.append([PLAYER,ENEMY])
information_state[PLAYER].append ([0,0,0,0,0])#X,Y,AMMO,CURRENT_STATE,LAST_STATE
information_state[ENEMY].append([0,0,0,0,0])#X,Y,AMMO,CURRENT_STATE,LAST_STATE


for index, item in enumerate(information_state):
        print index, item

information_state[PLAYER][AMMO] = 5

创建此输出:

0 [[0, 0, 0, 0, 0]]
1 [0, 1, [0, 0, 0, 0, 0]]
IndexError: list assignment index out of range

我习惯使用 PHP 数组,例如:

$array['player']['ammo'] = 5;

Python中有类似的东西吗?我听到有人推荐 numpy,但我不明白:(

我对 Python 很陌生。

注意:使用Python 2.7


我认为你应该看看 python 的数据结构教程 http://docs.python.org/tutorial/datastructures.html你要找的东西在这里被称为字典,它是键值对的列表。

在您的情况下,您可以使用嵌套字典作为键的值,以便您可以调用

## just examples for you ##

player_dict_info = {'x':0, 'y':0, 'ammo':0}
enemy_dict_info = {'x':0, 'y':0, 'ammo':0}
information_state = {'player': player_dict_info, 'enemy': enemy_dict_info}

并像在 php 中一样访问每个元素

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

如何在 Python 中创建二维数组 的相关文章

随机推荐

  • Maven原型:修改artifactId

    在进行项目时 我的要求是创建一个模块 该命令将类似于 mvn archetype generate DarchetypeCatalog local DartifactId test module 并且目标应该具有以下文件结构 test mo
  • PJSIP 库中的 TLSv1_2 (TLS1.2) 支持

    我正在使用最新的PJSIP http www pjsip org 我的 Android iOS 应用程序中的库 我想在我的项目中使用 TLSv1 2 连接 PJSIP 支持哪个 TLS 版本 从源代码来看它似乎支持TLSv1 0 有没有办法
  • 如何获取checkbox的值

    如何获取复选框的值 var tb new Ext Toolbar tb add xtype checkbox boxLabel Expand Groups by Default id GetChkBoxValue checked true
  • 应用程序终止自身最暴力的方式是什么(linux)

    我想模拟暴力系统关闭 即在应用程序级别尽可能接近断电 我们正在讨论 Linux 上的 c c 应用程序 我需要应用程序自行终止 目前我看到几个选项 call exit http linux die net man 3 exit call e
  • SortedSet - 存储类对象时的自定义顺序

    我正在考虑用 SortedSet 替换 HashSet 因为它更适合我存储的数据 然而 到目前为止我看到的所有示例都与存储简单对象有关 整数 字符串等 我想为具有多个属性的自定义类实现此功能 但是该类还包含一个我想用作 索引器 的日期 问题
  • 将长时间运行的任务分配到多个帧上的最佳方法是什么?

    我有多个长时间运行的任务 例如超过 10 毫秒 这会影响浏览器的响应能力 最糟糕的事情 例如从文件加载和解析 3D 模型 已经被卸载到 Web Workers 这样它们就不会影响渲染循环 然而 有些任务不容易移植到 Workers 因此必须
  • 警告:sprintf() [function.sprintf]:第 132 行 /home/inrunitc/public_html/chek/chek.php 中的参数太少

    Warning sprintf function sprintf Too few arguments in home inrunitc public html chek chek php on line 132 Query was empt
  • 在hive中向外部表添加分区需要花费大量时间

    我想知道向外部表添加分区的最佳方法是什么 我在 hive 的 S3 上有一个外部表 分区为 车辆 日期 小时 现在 可以在一天中的任何时间添加新车辆 并且有些车辆在一天中的几个小时或几天内没有数据 几种可能的解决方案 msck修复表 需 要
  • 如何解决 Apache-Beam 中的 Beam DeprecationWarning

    第一的 生成简单数据后将数据存储在谷歌云平台bigQuery表中的代码 导入 Apache Beam 库并使用它 跑步者使用了 Google Cloud Platform Dataflow 这里是代码 from apache beam op
  • numpy.dot -> MemoryError,my_dot -> 非常慢,但有效。为什么?

    我正在尝试计算两个大小分别为 162225 10000 和 10000 100 的 numpy 数组的点积 但是 如果我调用 numpy dot A B 则会发生 MemoryError 然后 我尝试编写我的实现 def slower do
  • MySQL 间隙锁定

    我有一张桌子叫tree nodes 在那里我存储了节点的 树表示 我的主题树是在持有者的上下文中创建的 所以 有一个专栏叫做holder id 我有一个事务方法 它会从此表和其他表中进行多次读取 以确定应从树中添加 删除哪些节点 我的应用程
  • 使用 Delve 进行 vscode 调试问题

    当我在 Visual Studio Code 中调试 Go Lang 代码时 出现以下错误消息 2018 04 03 18 19 32 server go 73 Using API v1 2018 04 03 18 19 32 debugg
  • android 父 Activity 在 startActivity 上被杀死

    我有一个带有列表视图的简单应用程序 当用户点击列表项时 我开始一个新活动 Intent eventdetails new Intent HomeActivity this EventDetailsActivity class eventde
  • 基本类型的复制/赋值

    标准对基本类型的复制 赋值有何规定 对于类类型 我们有复制构造函数 赋值运算符 它们将右侧作为引用 它必须是引用 否则我们会无限递归 struct Foo Foo const Foo 这是如何定义基本类型的 看这个例子 const Foo
  • 在C++中创建模板时是否可以找到sizeof(T)?

    我正在尝试构建一个模板 让我可以使用可调整大小的数组 有没有办法找到sizeof T 我使用 malloc 而不是 new 因为我想在调整数组大小的函数中使用 realloc 这是我的类的构造函数出现错误 template
  • getElementsbyClassName 未显示[重复]

    这个问题在这里已经有答案了 我正在使用以下代码 当我现在点击按钮时
  • 使用 MVC 模型显示只读文本

    我有一个 MVC 模型 其属性定义为 DisplayName Service Version public string ServiceVersion get set 在屏幕上 我希望它显示为 服务版本 0 1 ServiceVersion
  • 删除变量的特定部分

    我想从 CMake 变量中删除特定库 Suppose LIB包含变量 A B C 的值 我知道用set像这样添加另一个变量 D 的内容 set LIB LIB D 但是我试图从中删除 C LIB喜欢关注 unset LIB C 这段代码不起
  • 如何捕获触摸板输入

    我到处寻找如何捕获笔记本电脑的触摸板输入 但我似乎找不到任何适用于 Chrome 扩展 JavaScript 的内容 问题 对于笔记本电脑上的触摸板 如何捕获向下的手指数量 不是单击 只是向下并可能像使用鼠标一样移动 相应的 x y 坐标以
  • 如何在 Python 中创建二维数组

    我试图在 Python 中创建一个索引的二维数组 但我总是以某种方式遇到错误 下面的代码 Declare Constants no real constants in Python PLAYER 0 ENEMY 1 X 0 Y 1 AMMO