我有一个列表,我想以随机顺序打印。这是我到目前为止编写的代码:
import random
words=["python","java","constant","immutable"]
for i in words:
print(i, end=" ")
input("") #stops window closing
我已经尝试过各种各样的东西来随机打印出来,例如制作一个随机选择其中一个然后随机删除的变量。然后,我将重复此步骤,直到它们全部被删除并在另一个变量中。然后我将变量放在一个列表中然后打印出来。但这仍然会产生错误。还有其他方法可以做到吗?
答案 0 :(得分:3)
使用random.shuffle()
随机播放列表:
import random
words = ["python", "java", "constant", "immutable"]
random.shuffle(words)
print(*words)
input('')
演示:
>>> import random
>>> words = ["python", "java", "constant", "immutable"]
>>> random.shuffle(words)
>>> words
['python', 'java', 'constant', 'immutable']
如果您想保留words
(维护订单),可以使用随机键sorted()
返回新的随机列表:
words = ["python", "java", "constant", "immutable"]
print(*sorted(words, key=lambda k: random.random()))
这使words
保持不变:
>>> words = ["python", "java", "constant", "immutable"]
>>> sorted(words, key=lambda k: random.random())
['immutable', 'java', 'constant', 'python']
>>> words
['python', 'java', 'constant', 'immutable']
答案 1 :(得分:1)
试试这个:
import random
words2 = words[::]
random.shuffle(words2)
for w in words2:
print(w, end=" ")
请注意,我首先复制了原始列表,以防您想要保留它。如果你不介意改组它,这应该可以解决问题:
import random
random.shuffle(words)
for w in words:
print(w, end=" ")
答案 2 :(得分:0)
import random
random.choice([1,2,3])
#random element from the iterable
希望它有所帮助,random.choice()从列表中返回随机选择的元素。
答案 3 :(得分:-1)
如果确实愿意,可以使用random.randint
选择一个随机整数,然后打印与该整数对应的单词。