如何在python中随机打印列表中的元素?

如何在python中随机打印列表中的元素?,python,python-3.x,random,Python,Python 3.x,Random,我有一张单子,我想按随机顺序打印。以下是我迄今为止编写的代码: import random words=["python","java","constant","immutable"] for i in words: print(i, end=" ") input("") #stops window closing 我尝试了很多方法随机打印出来,比如制作一个变量,随机选择其中一个,然后随机删除。然后我会重复这一步,直到它们都被删除,并在另一个变量中。然后我会把变量放在一个列表中,然后打

我有一张单子,我想按随机顺序打印。以下是我迄今为止编写的代码:

import random
words=["python","java","constant","immutable"]
for i in words:
    print(i, end=" ")
input("") #stops window closing
我尝试了很多方法随机打印出来,比如制作一个变量,随机选择其中一个,然后随机删除。然后我会重复这一步,直到它们都被删除,并在另一个变量中。然后我会把变量放在一个列表中,然后打印出来。不过,这会不断产生错误。是否有其他方法可以做到这一点?

用于在适当的位置对列表进行无序排列:

import random

words = ["python", "java", "constant", "immutable"]
random.shuffle(words)
print(*words)

input('')
演示:

如果要保留
单词
(保持顺序),可以使用带有随机键的
sorted()
返回新的随机列表:

words = ["python", "java", "constant", "immutable"]
print(*sorted(words, key=lambda k: random.random()))
这使得
单词
保持不变:

>>> words = ["python", "java", "constant", "immutable"]
>>> sorted(words, key=lambda k: random.random())
['immutable', 'java', 'constant', 'python']
>>> words
['python', 'java', 'constant', 'immutable']
希望有帮助,random.choice()返回列表中随机选择的元素

试试这个:

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=" ")

如果你真的想,你可以使用
random.randint
选择一个随机整数,然后打印与该整数对应的单词。

不错,我喜欢提供random.random()作为键的技术。我认为op需要一个随机排列的元素列表,不是从列表中获取随机元素。我不知道他说他想按随机顺序打印,不是吗?是的,像
['a','b','c']
给出了
['b','a','c']
,没有一个字符说
b
。但是我想你的代码只能检索一个元素?
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=" ")