【问题标题】:Accessing array items访问数组项
【发布时间】:2012-08-18 14:01:09
【问题描述】:

我有一个需要用空格分隔的一维列表。我在 spyder 中运行此脚本,以便在 Mac OS 10.8 上并行运行 ubuntu。

我得到的是这样的:

print poly    
Output: [array([ 0.01322341,  0.07460202,  0.00832512])]

print poly[0]    
Output: [array([ 0.01322341,  0.07460202,  0.00832512])]

print poly[1]    
Output:
Traceback (most recent call last):

  File "/home/parallels/.../RampEst.py", line 38, in <module>

    print poly[1]

IndexError: list index out of range

“...”是文件目录的其余部分。

我需要的是:

print poly[0]    
Output: 0.01322341

print poly[1]    
Output: 0.07460202

print poly[2]    
Output: 0.00832512

【问题讨论】:

  • 您确定您在向我们展示的输出中将括号放在正确的位置吗? polypoly[0] 打印的内容完全相同,这对我来说似乎很奇怪。
  • 另外,您的array 类型是什么?它的输出与标准库中的array.array 不匹配(其中包括一个“类型”字符,例如用于双精度浮点数的“d”)。虽然这无关紧要,但如果该类型的接口有问题,则可能会出现问题。
  • 你的标题与问题无关

标签: python spyder


【解决方案1】:

您正在以错误的方式构造 list 对象。如果您发布您正在执行的操作,则可能会清楚实际问题。

您会注意到以下内容:

mylist = [ 0.01322341,  0.07460202,  0.00832512]
mylist[0] # 0.01322341 
mylist[1] # 0.07460202 
mylist[2] # 0.00832512 

工作正常。根据您发布的内容,您有 listarray 类型。当您访问 0 元素时,您将检索列表中唯一的 array 对象。如果您无法更改列表的结构,这将正常工作。

poly[0][0] # 0.01322341 
poly[0][1] # 0.07460202 
poly[0][2] # 0.00832512 

【讨论】:

    【解决方案2】:

    你如何首先初始化多边形? 该数组似乎在一个列表中,这将使其成为列表的第零个元素。因此,当您请求 poly[1] 时,它会失败。 要检查我所说的是否正确,请执行 poly[0][0]、poly[0][1] 和 poly[0][2]。如果这些返回您想要的数字,那么您的 poly 在列表中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2021-10-31
      • 2019-01-11
      • 1970-01-01
      相关资源
      最近更新 更多