【问题标题】:Python - Random frequency for changing values in a listPython - 更改列表中值的随机频率
【发布时间】:2016-11-09 03:38:49
【问题描述】:

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

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

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

【问题讨论】:

  • 我已经研究过使用随机选择,但我也想将值放回列表中的相同索引值。

标签: python list random


【解决方案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

【讨论】:

    【解决方案2】:

    您可以使用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
    

    【讨论】:

      猜你喜欢
      • 2021-11-02
      • 2019-04-24
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多