【问题标题】:Multidimensional array to multidimensional tuple多维数组到多维元组
【发布时间】:2015-12-07 21:12:19
【问题描述】:

如果我有这样的数组:

inner_loop = 
[
 [
  [18, 119], [42, 119], [42, 95], [18, 95]
 ],
 [
  [80, 96], [80, 75], [59, 75], [59, 96]
 ]
]

如何将其转换为像这样的多维元组

(
 (
  (18, 119), (42, 119), (42, 95), (18, 95)
 ),
 (
  (80, 96), (80, 75), (59, 75), (59, 96)
 )
)

我试过了:

tuple(tuple(y) for y in (tuple(tuple (x) for x in (tuple(inner_loops)))))

但最后一层没有转换。

【问题讨论】:

  • 我正在使用需要它的外部库。
  • 可能有多少层?
  • 不超过3个。是多边形列表,所以list -> polygons -> vertices

标签: python arrays multidimensional-array tuples


【解决方案1】:
tuple(tuple(tuple(l2) for l2 in l1) for l1 in inner_loop)

【讨论】:

    【解决方案2】:

    如果您有大量数据,使用地图的可读性更高,实际上效率更高:

    inner_loop = tuple(tuple(map(tuple, sub)) for sub in inner_loop)
    
    print(inner_loop)
    (((18, 119), (42, 119), (42, 95), (18, 95)), ((80, 96), (80, 75), (59, 75), (59, 96)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 2011-10-19
      • 2019-02-20
      • 2023-04-06
      • 1970-01-01
      • 2019-01-15
      相关资源
      最近更新 更多