Python从2D数组中随机选择一个元素并添加到其中

时间:2013-11-13 23:57:19

标签: python arrays random multidimensional-array

如何从2d数组中随机选择一个元素然后添加到它?

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

我想随机添加13到其中一个元素,所以它看起来像

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

2 个答案:

答案 0 :(得分:2)

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]]

答案 1 :(得分:1)

这有效:

>>> 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添加到该索引处的项目中。