2016-11-09 3 views
1

Ich habe eine Liste, die zwei Listen enthalten und ich bin zufällig einen der Werte wählen innerhalb dieser beiden Listen und sie dann um 0,5Python - Random Frequenz für Werte in einer Liste zu ändern

Zum Beispiel multiplizieren, ich erhalte eine Liste wie folgt aus:

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

Ich habe mir eine zufällige Auswahl angesehen, aber ich möchte auch den Wert wieder in die Liste mit dem gleichen Indexwert setzen. – theguyty

Antwort

1

Was es klingt wie Sie tun möchten, ist durch die Liste der Listen laufen, und bei jeder Liste zufällig einen Index auswählen, multiplizieren Sie den Wert an diesem Index von 0,5 und Platz es zurück in der Liste.

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

Sie können randint und die Länge der Liste verwenden.

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 
Verwandte Themen