python - 如何在再次循环之前随机循环整个列表?
问题描述
import random
list1 = [11, 22, 33, 44, 55]
for i in range(5):
random_number = random.randint(0,4)
print(list1[random_number])
我试图找到一种方法来随机打印整个列表,而不在第一个循环中打印列表的副本。然后,如果我将范围增加到 10、15、20 等,每 5 次打印随机显示所有元素并且没有重复(重复我的意思是每组 5 次显示的打印没有重复)即 22、33、11, 55, 44, 44, 11, 33, 22, 55, 33, 22, 55, 44, 11 ...
解决方案
您可以制作列表的副本,然后从副本中弹出元素直到它为空,然后通过再次复制原始列表来“重新加载”它
import random
list1 = [11, 22, 33, 44, 55]
clonedList = list1.copy()
for i in range(5):
if len(clonedList == 0):
clonedList = list1.copy()
random_number = random.randint(0,len(clonedList)-1)
print(clonedList.pop(random_number))
推荐阅读
- mysql - MySQL 相当于 Pandas 的 to_datetime 函数
- python - 如何在 Keras python 中使用 ConvLSTM2D 和 Conv2D
- r - 向 R 中的 & 等逻辑运算符提供数字参数是一种好的编程习惯吗?
- html - 使用 CSS 实现一致的溢出模糊?
- c++ - 无法检查文件中的字符串
- ruby-on-rails - 检索 SendGrid 统计数据以显示用户发送的电子邮件的打开率和点击率
- javascript - 如果我两次附加相同的 js 脚本,代码会重复吗?
- elixir - Elixir 的 `mix format` 配置选项
- azure - Azure 上的 Bitnami SonarQube VM:无法启动 sonarqube
- android - CoordinatorLayout 在 Android Studio 3.1.3 中不起作用?