我在 python 中随机化已经有一段时间了,但由于某种原因我被困在这里。也许只是晚上太晚了...
无论如何,我正在 Python 中寻找一种快速简单的方法;
- 打开 TXT 文件
- 随机排列
- 另存为新的 TXT 文件
我觉得有点傻... 任何帮助表示赞赏!谢谢!
请您参考如下方法:
使用random.shuffle随机化一个序列:
import random
with open('filename', 'rb') as infile:
lines = infile.readlines()
random.shuffle(lines)
with open('newfilename', 'wb') as outfile:
outfile.writelines(lines)
编辑: 另一个答案中建议的洗牌方法是错误的。请参阅其中的评论和链接。这是一个更正确的洗牌示例:
end = len(lines) - 1
for i in range(end + 1):
choice = random.randint(i, end)
lines[i], lines[choice] = lines[choice], lines[i]
洗牌后,假设 randint 是完全随机的,一行的位置与其洗牌前的位置完全不相关。在另一个答案中使用朴素算法,情况并非如此。两次洗牌都采用相同数量的操作。
