0

2次元配列から要素をランダムに選択して追加するにはどうすればよいですか?

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

要素の1つに13をランダムに追加したいので、次のようになります

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

2 に答える 2

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]]
于 2013-11-14T00:01:33.727 に答える
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

于 2013-11-14T00:01:14.467 に答える