Python - 用于更改列表中值的随机频率

时间:2016-11-09 03:38:49

标签: python list random

我有一个包含两个列表的列表,我希望随机选择这两个列表中的一个值,然后将它们乘以0.5

例如,我收到一个这样的列表:

[[-0.03680804604507722, 0.022112919584121357], [0.05806232738548797, -0.004015137642131433]]

2 个答案:

答案 0 :(得分:1)

你想要做的是迭代你的列表列表,并在每个列表中,随机选择一个索引,将该索引处的值乘以0.5并将其放回列表中。

import random
l = [[-0.03680804604507722, 0.022112919584121357], [0.05806232738548797, -0.004015137642131433]]

# for each sub list in the list
for sub_l in l:
   # select a random integer between 0, and the number of elements in the sub list
   rand_index = random.randrange(len(sub_l))

   # and then multiply the value at that index by 0.5 
   # and store back in sub list
   sub_l[rand_index] = sub_l[rand_index] * 0.5

答案 1 :(得分:1)

您可以使用randint和列表的长度。

from random import randint

lst = [[-0.03680804604507722, 0.022112919584121357], [0.05806232738548797, -0.004015137642131433]]

for L in lst:
    L[randint(0, len(L) - 1)] *= 0.5