Я думаю, вы хотите что-то вроде этого - он объединяет ваши списки и затем перетасовывает их
import random
import itertools
def randomize(*seq):
shuffled = list(itertools.chain.from_iterable(seq))
random.shuffle(shuffled)
return iter(shuffled)
colors = ["red", "blue", "green", "purple"]
shapes = ["square", "circle", "triangle", "octagon"]
res = list(randomize(colors, shapes))
for i in res:
print(i)
print('length: {}'.format(len(res)))
Если вы не хотите этого, это также работает:
import random
import itertools
def randomize(*seq):
shuffled = list(seq)
for i in shuffled:
random.shuffle(i)
return iter(shuffled)
colors = ["red", "blue", "green", "purple"]
shapes = ["square", "circle", "triangle", "octagon"]
length = len(list(itertools.chain.from_iterable( randomize(colors, shapes))))
print('length: {}'.format(length))
for i in randomize(colors, shapes):
print(i)