本文目录导读:

在Python中,打乱列表最常用的是random.shuffle()方法,以下是几种常用的打乱列表方式:
原地打乱(推荐)
import random
# 原始列表
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 原地打乱,直接修改原列表
random.shuffle(my_list)
print(f"打乱后: {my_list}")
生成新的打乱列表(不修改原列表)
import random
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 使用random.sample()生成新列表
shuffled_list = random.sample(my_list, len(my_list))
print(f"原列表: {my_list}")
print(f"打乱后: {shuffled_list}")
使用numpy(适合科学计算)
import numpy as np
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# numpy方式
shuffled_list = np.random.permutation(my_list).tolist()
print(f"打乱后: {shuffled_list}")
可复现的随机打乱(设置随机种子)
import random
# 设置随机种子,确保每次运行结果相同
random.seed(42)
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random.shuffle(my_list)
print(f"随机种子42的结果: {my_list}")
# 重置种子后再次运行,结果相同
random.seed(42)
my_list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random.shuffle(my_list2)
print(f"再次运行结果: {my_list2}")
实战案例:随机分配座位
import random
students = ["小明", "小红", "小刚", "小李", "小华", "小天"]
seats = [f"座位{i+1}" for i in range(6)]
# 随机分配座位
random.shuffle(students)
print("=== 随机座位分配 ===")
for i, student in enumerate(students):
print(f"{seats[i]}: {student}")
打乱后拆分训练/测试集
import random
data = list(range(1, 101)) # 100个数据
random.shuffle(data)
# 按80%/20%比例拆分
split_point = int(len(data) * 0.8)
train_data = data[:split_point]
test_data = data[split_point:]
print(f"训练集大小: {len(train_data)}")
print(f"测试集大小: {len(test_data)}")
注意事项
random.shuffle()会直接修改原列表,没有返回值- 如果需要保留原列表,请使用
random.sample()或复制后再shuffle - 设置
random.seed()可以让随机结果可复现
你更关注哪种使用场景?我可以提供更具体的案例。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播