Yes, you can shuffle pairs within a list using Python's random.shuffle()
function. Here's how you can do it:
import random
# Create a list of pairs
tlist = [['A1', 'B1'], ['A2', 'B2'], ['A3', 'B3'], ['A4', 'B4'], ['A5', 'B5'], ['A6', 'B6'], ['A7', 'B7'], ['A8', 'B8']]
# Shuffle the list of pairs in place
random.shuffle(tlist)
# Print the shuffled list of pairs
print(tlist)
This code shuffles the list and returns a new list without altering the original one. Here's an example of the output:
[['A2', 'B2'], ['B5', 'A5'], ['B8', 'A8'], ['A7', 'B7'], ['B4', 'A4'], ['B6', 'A6'], ['A3', 'B3'], ['A1', 'B1']]
Alternatively, you can use a list comprehension to shuffle the pairs in place:
tlist = [t[::-1] if random.randrange(6) < 1 else t for t in tlist]
print(tlist)
This code first checks if a randomly generated number is less than 1. If it is, the pair is reversed. Otherwise, the pair remains unchanged. The [::-1]
syntax reverses the order of elements in the pair. Here's an example of the output:
[['A1', 'B1'], ['A2', 'B2'], ['B3', 'A3'], ['B4', 'A4'], ['B5', 'A5'], ['B6', 'A6'], ['A7', 'B7'], ['A8', 'B8']]
Both methods shuffle the pairs within the list, but the first method does it in place, while the second method creates a new list.