【问题标题】:Python randomly select an element from a 2D array and add to itPython从二维数组中随机选择一个元素并添加到它
【发布时间】:2013-11-13 23:57:19
【问题描述】:

如何从二维数组中随机选择一个元素,然后添加到其中?

amount_to_add = 13
my_array = [[0,0],[0,0],[0,0]]

我想将 13 随机添加到其中一个元素中,使其看起来像

my_array = [[0,0],[0,13],[0,0],[0,0]]

【问题讨论】:

  • 输出my_array 应该有一个额外的列表吗?还是应该和原来的my_array一样长?

标签: python arrays random multidimensional-array


【解决方案1】:
import random

my_array[random.randrange(len(my_array))].append(amount_to_add)

就这么简单。

演示:

>>> my_array = [[0],[0],[0],[0]]
>>> my_array[random.randrange(len(my_array))].append(amount_to_add)
>>> my_array[random.randrange(len(my_array))].append(amount_to_add)
>>> my_array
[[0], [0], [0, 10], [0, 10]]

编辑:原来我误解了这个问题。添加方法如下:

>>> my_array = [[0,0],[0,0],[0,0],[0,0]]
>>> random.choice(my_array)[random.randrange(len(choice))] += amount_to_add
>>> my_array
[[0, 10], [0, 0], [0, 0], [0, 0]]
>>> random.choice(my_array)[random.randrange(len(choice))] += amount_to_add
>>> my_array
[[0, 10], [0, 0], [0, 0], [0, 10]]

【讨论】:

  • 这会将一个新元素添加到随机子列表中。不是他要求的。
【解决方案2】:

这行得通:

>>> from random import choice, randint
>>> amount_to_add = 13
>>> my_array = [[0,0],[0,0],[0,0]]
>>> element = choice(my_array)
>>> element[randint(0, len(element)-1)] += amount_to_add
>>> my_array
[[13, 0], [0, 0], [0, 0]]
>>> my_array = [[0,0],[0,0],[0,0]]
>>> element = choice(my_array)
>>> [randint(0, len(element)-1)] += amount_to_add
>>> my_array
[[0, 0], [0, 0], [0, 13]]
>>>

它随机选择my_array中的一个元素,随机选择该元素上的一个索引,然后将amount_to_add添加到该索引处的项目中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-10
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2018-11-11
    • 2014-07-23
    相关资源
    最近更新 更多