【问题标题】:Updating a 2 dimensional list in python在 python 中更新二维列表
【发布时间】:2015-07-13 04:08:42
【问题描述】:

我有一个大的二维整数值列表。我需要更新这个列表的一部分。

目前我使用的语法:

pixelArray[20:24][150:154] = [255 for i in range(4)]

表中确实存在列索引。我尝试直接将切片设置为值 255,但 python 告诉我我需要使用迭代器来设置多个值。有没有更简单的方法来做到这一点?

【问题讨论】:

  • 您似乎试图设置一个位置 - 为什么要使用切片?您可能需要考虑使用 numpy 数组。
  • 右侧同[255] * 4
  • 我需要将列表中的值的子集更新为 255。完成此操作的最佳方法是什么?
  • 使用 numpy 数组而不是列表列表,然后您可以执行例如pixelArray[20:24,150:154] = 255.

标签: python arrays list slice


【解决方案1】:

这个呢:

pixelArray[20:24,150:154]= [255]

【讨论】:

  • 刚刚注意到@jonrsharpe 早早回答了这个问题。
【解决方案2】:

做这样的事情就足够了:

for a in pixelArray[20:24]:
    for b in range(150,155):
        a[b] = 255

【讨论】:

    【解决方案3】:

    怎么了

    pixelArray[20][150:154] = [255] * 4
    pixelArray[21][150:154] = [255] * 4
    pixelArray[22][150:154] = [255] * 4
    pixelArray[23][150:154] = [255] * 4
    

    for i in range(20, 24):
        pixelArray[i][150:154] = [255] * 4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      相关资源
      最近更新 更多