Shuffle list values into sublists of 19 values each
Question:
I have a large list of around 200 values
The list looks like this
list_ids = [10148,
10149,
10150,
10151,
10152,
10153,
10154,
10155,
10156,
10157,
10158,
10159,
10160,
10161,
10163,
10164,
10165,
10167,
10168,
10169,
10170,
10171,
10172,
10173,
10174,
10175,
10177,
10178,
10179,
10180,
10181,
10182,
10183,
7137,
7138,
7139,
7142,
7143,
7148,
7150,
7151,
7152,
7153,
7155,
7156,
7157,
9086,
9087,
9088,
9089,
9090,
9091,
9094,
9095,
9096,
9097,
2164]
I would like to shuffle this list and create a sublist of 19 values for each sublist.
I tried :
list_ids.sort(key=lambda list_ids, r={b: random.random() for a, b in list_ids}: r[list_ids[1]])
But it didnt work. Looks like I am missing something.
End result is a sublist with shuffled values containing 19 values each
Answers:
Convert to pandas series and get a sample of size 19:
import pandas as pd
ids = pd.Series(list_ids)
ids.sample(19).values
for random numbers between 0 and 1:
import random
random.shuffle(list_ids)
result = {}
for i in list_ids:
result[i] = [random.random() for x in range(19)]
result
for random numbers from the original list:
import random
random.shuffle(list_ids)
result = {}
for i in list_ids:
result[i] = [ids.sample(19).values]
result
you can shuffle the list with random.shuffle:
import random
# shuffles list in place
random.shuffle(list_ids)
#split into lists containg 19 elements
splits = list([list_ids[i:i+19] for i in range(0,len(list_ids),19)])
import random
s = 19
random.shuffle(list_ids)
sub_lists = [list_ids[s*i:s*(i+1)] for i in range(len(list_ids) // s)]
I have a large list of around 200 values
The list looks like this
list_ids = [10148,
10149,
10150,
10151,
10152,
10153,
10154,
10155,
10156,
10157,
10158,
10159,
10160,
10161,
10163,
10164,
10165,
10167,
10168,
10169,
10170,
10171,
10172,
10173,
10174,
10175,
10177,
10178,
10179,
10180,
10181,
10182,
10183,
7137,
7138,
7139,
7142,
7143,
7148,
7150,
7151,
7152,
7153,
7155,
7156,
7157,
9086,
9087,
9088,
9089,
9090,
9091,
9094,
9095,
9096,
9097,
2164]
I would like to shuffle this list and create a sublist of 19 values for each sublist.
I tried :
list_ids.sort(key=lambda list_ids, r={b: random.random() for a, b in list_ids}: r[list_ids[1]])
But it didnt work. Looks like I am missing something.
End result is a sublist with shuffled values containing 19 values each
Convert to pandas series and get a sample of size 19:
import pandas as pd
ids = pd.Series(list_ids)
ids.sample(19).values
for random numbers between 0 and 1:
import random
random.shuffle(list_ids)
result = {}
for i in list_ids:
result[i] = [random.random() for x in range(19)]
result
for random numbers from the original list:
import random
random.shuffle(list_ids)
result = {}
for i in list_ids:
result[i] = [ids.sample(19).values]
result
you can shuffle the list with random.shuffle:
import random
# shuffles list in place
random.shuffle(list_ids)
#split into lists containg 19 elements
splits = list([list_ids[i:i+19] for i in range(0,len(list_ids),19)])
import random
s = 19
random.shuffle(list_ids)
sub_lists = [list_ids[s*i:s*(i+1)] for i in range(len(list_ids) // s)]