Python - 以非线性方式运行一个循环

标签 python list for-loop

所以, 我正在寻找一种以 for 循环方式遍历项目列表的方法,但我希望循环以“随机”方式迭代。即我不希望循环进入 0,1,2,3,m+1...n,我希望它以某种随机顺序选择它并且仍然运行所有项目的循环。

这是我当前的循环代码:

for singleSelectedItem in listOfItems:
  item = singleSelectedItem.databaseitem
  logging.info(str(item))    

如果这没有意义,请告诉我;)

最佳答案

如果 listOfItems 可以被洗牌,那么

import random
random.shuffle(listOfItems)
for singleSelectedItem in listOfItems:
    blahblah

否则

import random
randomRange = range(len(listOfItems))
random.shuffle(randomRange)
for i in randomRange:
    singleSelectedItem = listOfItems[i]
    blahblah

在评论中编辑 Jochen Ritzel 的更好方法。
否则部分可以是

import random
for item in random.sample(listOfItems, len(listOfItems))
    blahblah

关于Python - 以非线性方式运行一个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403607/

相关文章:

Python Web 开发 - 有或没有框架

java - 比较列表中对象的属性

java for循环在数组中存储阶乘

python - mpmath 矩阵求逆的替代方案或加速

python - Postgres 中 'money' 和 'OID' 的 sqlalchemy 等效列类型是什么?

python - 如何通过单击python标签中的按钮开始录制

python - 将列表转换为 Pandas 数据框列

regex - 如何使用基于正则表达式的列表中的值将列添加到 data.table

javascript - 数组和 For 循环 JS 的逻辑问题

C++ - 将数字添加到列表中? (像 python )