前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python随机打乱列表中的元素

Python随机打乱列表中的元素

作者头像
宇宙之一粟
发布2020-10-26 10:18:43
6.5K0
发布2020-10-26 10:18:43
举报
文章被收录于专栏:宇宙之_一粟

随机打乱列表中的元素

自己写函数用于随机打乱列表中的元素

方案一:交换法

随机选取原列表索引,将索引位置上的值进行交换

代码语言:javascript
复制
import random

def random_list1(li):
    for i in range(0, 100):
        index1 = random.randint(0, len(li) - 1)
        index2 = random.randint(0, len(li) - 1)
        li[index1], li[index2] = li[index2], li[index1]
    return li


li = [1, 2, 3, 4, 5]
test = random_list1(li)
print(test)

方案二:随机选取并重新添加到一个列表

首先生成原列表的拷贝a_copy,新建一个空列表result,然后随机选取拷贝列表中的值存入空列表result,然后删除

代码语言:javascript
复制
import random


def random_list2(a):
    a_copy = a.copy()
    result = []
    count = len(a)
    for i in range(0, count):
        index = random.randint(0, len(a_copy) - 1)
        result.append(a_copy[index])
        del a_copy[index]
    return result

test = [1, 3, 4, 5, 6]
result = random_list2(test)
print(result)

方案三:系统自带函数shuffle

代码语言:javascript
复制
import random

test = [1, 2, 3, 4, 5]
random.shuffle(test)
print(test)

Python的random.shuffle()函数可以用来乱序序列,它是在序列的本身打乱,而不是新生成一个序列。

附:python中shuffle函数

代码语言:javascript
复制
def shuffle(self, x, random=None):
    """Shuffle list x in place, and return None.

    Optional argument random is a 0-argument function returning a
    random float in [0.0, 1.0); if it is the default None, the
    standard random.random will be used.

    """

    if random is None:
        randbelow = self._randbelow
        for i in reversed(range(1, len(x))):
            # pick an element in x[:i+1] with which to exchange x[i]
            j = randbelow(i + 1)
            x[i], x[j] = x[j], x[i]
    else:
        _int = int
        for i in reversed(range(1, len(x))):
            # pick an element in x[:i+1] with which to exchange x[i]
            j = _int(random() * (i + 1))
            x[i], x[j] = x[j], x[i]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 随机打乱列表中的元素
    • 方案一:交换法
      • 方案二:随机选取并重新添加到一个列表
        • 方案三:系统自带函数shuffle
          • 附:python中shuffle函数
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档