10 методов рандомизации списка заголовков в Python

Метод 1: использование функции random.sample()

import random
titles = ["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"]
random_titles = random.sample(titles, len(titles))
print(random_titles)

Метод 2. Использование функции random.shuffle()

import random
titles = ["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"]
random.shuffle(titles)
print(titles)

Метод 3: реализация алгоритма перемешивания Фишера-Йейтса

import random
titles = ["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"]
for i in range(len(titles)-1, 0, -1):
    j = random.randint(0, i+1)
    titles[i], titles[j] = titles[j], titles[i]
print(titles)

Метод 4. Использование функции numpy.random.shuffle()

import numpy as np
titles = ["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"]
np.random.shuffle(titles)
print(titles)

Метод 5: использование функции itertools.permutations()

import itertools
titles = ["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"]
random_titles = list(itertools.permutations(titles))
print(random_titles)

Метод 6. Создание собственной функции рандомизации

import random
def randomize_titles(titles):
    randomized_titles = []
    while titles:
        randomized_titles.append(titles.pop(random.randint(0, len(titles)-1)))
    return randomized_titles
titles = ["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"]
random_titles = randomize_titles(titles)
print(random_titles)

Метод 7. Использование функции pandas sample()

import pandas as pd
titles = pd.Series(["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"])
random_titles = titles.sample(frac=1).tolist()
print(random_titles)

Метод 8: использование функции random.choice() в цикле

import random
titles = ["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"]
random_titles = []
while titles:
    random_title = random.choice(titles)
    random_titles.append(random_title)
    titles.remove(random_title)
print(random_titles)

Метод 9: реализация рекурсивной функции для рандомизации

import random
def randomize_titles(titles):
    if len(titles) == 1:
        return titles
    index = random.randint(0, len(titles)-1)
    return [titles[index]] + randomize_titles(titles[:index] + titles[index+1:])
titles = ["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"]
random_titles = randomize_titles(titles)
print(random_titles)

Метод 10: использование функции random.choices()

import random
titles = ["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"]
random_titles = random.choices(titles, k=len(titles))
print(random_titles)