我正在尝试将一些字符串随机分配到变量中,
myTest = random.choice(["test1","test2","test3"])
print(myTest)
print(myTets)
print(myTest)
当我运行脚本时,它们每次都是相同的,
test1
test1
test1
我喜欢在每次调用它时对变量进行随机化,例如,
test1
test3
test2
答案 0 :(得分:3)
这基本上与
相同x = 42
print(x)
print(x)
print(x)
仅在分配变量值时才会更改:
x = 42
print(x)
x = 45
print(x)
如果要使用新的随机值,则需要再次调用该函数:
l = [1, 2, 3, 4, 5]
x = random.choice(l)
print(x)
x = random.choice(l)
print(x)
答案 1 :(得分:1)
您每次必须调用命令:
start_link
答案 2 :(得分:1)
尝试一下...
print(random.choice("test1","test2","test3"))
print(random.choice("test1","test2","test3"))
print(random.choice("test1","test2","test3"))
答案 3 :(得分:0)
请访问random.sample docs。在您的情况下,可能如下所示:
import random
my_tests = ['test1','test2','test3']
for choice in random.sample(my_tests, 3):
print(choice)
其他选择是通过更改my_tests
到位执行该操作:
import random
my_tests = ['test1','test2','test3']
print(my_tests, '\n\n')
for i in range(10):
random.shuffle(my_tests)
print(my_tests)
答案 4 :(得分:0)
首先,您必须导入随机变量。然后,您应该将test1,test2和test3放在一个字符串中。这样您就可以得到想要的结果:
NULL
答案 5 :(得分:0)
如果要将结果存储在某个地方而不是仅用于打印,则应仅使用list comprehension,这些值将直接存储在新列表中。
翻译:
>>> import random
>>>
>>> choices = ["test1","test2","test3"]
>>> selected = [random.choice(choices) for _ in range(3)] # iterates 3 times, appending value of "random.choice(choices)" to the end of the list
>>> print(selected)
['test1', 'test2', 'test2']
顺便说一句,“ _”只是用于存储不需要的值的“我不在乎”变量,如果需要数字,则可以使用适当的变量命名,例如“ i”并使用它。
编辑:同样,在您的问题得到回答后,请选择有助于您解决问题的答案。谢谢。