Reputation: 130
Given a list of lists as follows:
aList = [["1","Number1", "2", "Number2","3","Number3", "4", "Number4"],["3","Number3", "1", "Number1","2","Number2", "4", "Number4"]]
I am trying to shuffle every two elements in a sublist to get something like e.g., this:
aListNew = [["3","Number3", "1", "Number1","4","Number4", "2", "Number2"],["2","Number2", "3", "Number3","1","Number1", "4", "Number4"]]
So it is important that the two successive strings remain together while being shuffled.
Upvotes: 1
Views: 105
Reputation: 2136
There are numerous ways you could do this. You don't give any indication of what you have tried or why it didn't work. Nevertheless as this question hasn't yet been answered or closed here is some code. Please review the posting guidelines so your future posts will generate more answers and be less likely to be closed.
import random
aList = [["1","Number1", "2", "Number2","3","Number3", "4", "Number4"],["3","Number3", "1", "Number1","2","Number2", "4", "Number4"]]
alist_alt = []
for sublist in aList:
l = len(sublist)
r = list(range(0, l ,2))
random.shuffle(r)
sublist_alt=[]
for i in r:
sublist_alt.append(sublist[i])
sublist_alt.append(sublist[i+1])
alist_alt.append(sublist_alt)
print(alist_alt)
Upvotes: 1