如何随机混合列表并将其分配给 .TXT 文件
How to randomly mix up a list and assign it to a .TXT file
我想生成一系列随机字母分配给一个列表并将其分配给一个新列表。为了进一步解释这个问题,我举个例子:
我有一个包含 5 个字母的列表:
letters = ["A", "B", "C", "D", "E"]
我想将这些字母随机混合到另一个列表中,并将其添加到 .TXT 文件中。这是我希望输出的示例:
["C", "A", "E", "D", "B"]
或:
["E", "D", "B", "C", "A"]
如您所见,我只希望所有字母随机放置,不重复。所以像这样:
["C", "C", "E", "B", "A"]
无法使用,因为“C”重复了 2 次。
我也想在Python
中这样做
谢谢
丹尼尔
您可以使用方法 random.choice()
为您提供随机字母值。如果你想将 25 个随机字母 lower-/uppercase 字母写入文件,我会这样做:
import random
import string
with open("filepath", "w+") as file:
for _ in range(25):
file.write(f"{random.choice(string.ascii_letters)}\n")
让 25 个字符在彼此下方。
编辑:我不太明白你所说的已经定义了一些字母是什么意思,但是如果你想在一个字母到一个新字母之间创建一个映射,我会建议使用字典。
我的方法是使用模块 random
。 @Dharman 和@Martin J. Nilsen 的回答会起作用,但不适用于我想要的问题。我不希望在新生成的列表中出现重复,random.choices()
/random.choice()
将始终有重复。
我解决这个问题的方法是使用 random.shuffle()
方法:
letters = ["A", "B", "C", "D", "E"]
import random
random.shuffle(letters)
print(letters)
>>> ['E', 'A', 'D', 'B', 'C']
>>> ['C', 'E', 'D', 'B', 'A']
>>> ['B', 'E', 'C', 'D', 'A']
如果我想将这些随机列表添加到文本文件中,只需将上面的脚本添加到方法中即可:
def ShuffleLetters():
import random
letters = ["A", "B", "C", "D", "E"]
random.shuffle(letters)
return letters
然后将它们添加到 for 循环中:
file = open("test.txt", "a")
i = 0
amount_of_shuffles = 10
for i in range(0, (amount_of_shuffles + 1)):
file.write(str(ShuffleLetters()) + "\n")
file.close()
我想生成一系列随机字母分配给一个列表并将其分配给一个新列表。为了进一步解释这个问题,我举个例子:
我有一个包含 5 个字母的列表:
letters = ["A", "B", "C", "D", "E"]
我想将这些字母随机混合到另一个列表中,并将其添加到 .TXT 文件中。这是我希望输出的示例:
["C", "A", "E", "D", "B"]
或:
["E", "D", "B", "C", "A"]
如您所见,我只希望所有字母随机放置,不重复。所以像这样:
["C", "C", "E", "B", "A"]
无法使用,因为“C”重复了 2 次。
我也想在Python
中这样做谢谢 丹尼尔
您可以使用方法 random.choice()
为您提供随机字母值。如果你想将 25 个随机字母 lower-/uppercase 字母写入文件,我会这样做:
import random
import string
with open("filepath", "w+") as file:
for _ in range(25):
file.write(f"{random.choice(string.ascii_letters)}\n")
让 25 个字符在彼此下方。
编辑:我不太明白你所说的已经定义了一些字母是什么意思,但是如果你想在一个字母到一个新字母之间创建一个映射,我会建议使用字典。
我的方法是使用模块 random
。 @Dharman 和@Martin J. Nilsen 的回答会起作用,但不适用于我想要的问题。我不希望在新生成的列表中出现重复,random.choices()
/random.choice()
将始终有重复。
我解决这个问题的方法是使用 random.shuffle()
方法:
letters = ["A", "B", "C", "D", "E"]
import random
random.shuffle(letters)
print(letters)
>>> ['E', 'A', 'D', 'B', 'C']
>>> ['C', 'E', 'D', 'B', 'A']
>>> ['B', 'E', 'C', 'D', 'A']
如果我想将这些随机列表添加到文本文件中,只需将上面的脚本添加到方法中即可:
def ShuffleLetters():
import random
letters = ["A", "B", "C", "D", "E"]
random.shuffle(letters)
return letters
然后将它们添加到 for 循环中:
file = open("test.txt", "a")
i = 0
amount_of_shuffles = 10
for i in range(0, (amount_of_shuffles + 1)):
file.write(str(ShuffleLetters()) + "\n")
file.close()