尝试执行 random.shuffle,如果声明了列表,效果很好。 在示例 2 中,我尝试从包含 1000 个条目的文件中执行此操作 显示前两行。 txt 文件格式是否错误?我无法让它发挥作用。 我尝试了网上找到的很多例子。
随机导入
#示例1
list1 = ['sub', 'gig', 'bug']
随机洗牌(列表1)
打印('列表1:',列表1)
#结果
list1: ['bug', 'gig', 'sub']
#示例2 #masterwords.txt 在第 1 行和第 2 行有这个
['bug', 'gig', 'sub']
['青蛙', '狗', '猫']
打开(“masterwords.txt”,mode =“r”,encoding =“utf-8”)作为文件:
行= []
对于文件中的行:
line = line.strip()
lines.append(line)
random.shuffle(lines)
打印(行)
#结果:
["['青蛙', '狗', '猫']", "['bug', 'gig', 'sub']", '']
文件中的数据是Python列表的字符串表示形式。您需要将它们转换为运行时列表。您可以使用 ast.literal_eval() 函数来完成此操作。
假设输入文件包含:
['bug', 'gig', 'sub']
['frog', 'dog', 'cat']
然后:
from ast import literal_eval
from random import shuffle
with open("masterwords.txt") as mw:
for line in mw:
lst = literal_eval(line)
shuffle(lst)
print(lst)
可能的输出:
['sub', 'gig', 'bug']
['cat', 'dog', 'frog']