菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

Python3 shuffle() 函数

Python3 数字 Python3 数字


描述

shuffle() 方法将序列的所有元素随机排序。


语法

以下是 shuffle() 方法的语法:

importrandomrandom.shuffle(lst)

注意:shuffle() 是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。


参数

  • lst -- 列表。

返回值

返回 None。


实例

以下展示了使用 shuffle() 方法的实例:

实例

#!/usr/bin/python3importrandomlist = [20, 16, 10, 5]; random.shuffle(list)print("随机排序列表 : ", list)random.shuffle(list)print("随机排序列表 : ", list)

以上实例运行后输出结果为:

随机排序列表 : [20, 5, 16, 10]
随机排序列表 : [5, 20, 10, 16]

Python3 数字 Python3 数字

AI 思考中...

2 篇笔记 写笔记

  1. #0

    本来想使用相同种子使得随机排序后结果相同:

    #!/usr/bin/python3
    import random
    list = [20, 16, 10, 5]
    random.seed(10)
    random.shuffle(list)
    print("随机排序列表 : ", list)
    random.seed(10)
    random.shuffle(list)
    print("随机排序列表 : ", list)

    输出结果:

    随机排序列表 : [5, 10, 16, 20]
    随机排序列表 : [20, 16, 10, 5]

    查阅得知:因为 random.shuffle 具有破坏性,需要每次都重置列表。

    下列代码才可以得到相同的随机排序列表。

    import random
    SEED = 10
    original_list = ['list', 'elements', 'go', 'here']
    random.seed(SEED)
    my_list = original_list[:]
    random.shuffle(my_list)
    print("RUN1: ", my_list)
    random.seed(SEED)
    my_list = original_list[:]
    random.shuffle(my_list)
    print("RUN2: ", my_list)

    输出结果:

    RUN1: ['here', 'go', 'elements', 'list']
    RUN2: ['here', 'go', 'elements', 'list']
    6年前 (2020年05月28日)
  2. #0

    vipkwd

    ser***[email protected]

    28

    浅谈一下"破坏性"的问题。

    一个函数其最终状态无非以下几种:

    • 1、显性 return;
    • 2、无return(隐性reutrn None);
    • 3、改变空间下的值(多用于类中),显性return;
    • 4、改变空间下的值(多用于类中),无return(隐性reutrn None);
    • 5、改变入参 [,改变空间下的值(多用于类中)],显性 return;
    • 6、改变入参 [,改变空间下的值(多用于类中)],无 return(隐性reutrn None);

    其中所有无 return 的结构都是合法,只是我们通常都手动显性给个返回值而已(那怕也是同隐性reutrn一样,返回一个 None。

    这样做的意义在于: 从外部看就知道这个函数他是有返回值的,便于代码理解与维护)关于 5 和 6 的"改变入参",这个说起来就和PHP的引用传参如出一辙(我猜的, 本想看下底层实现来验证的但没有找到地方):函数内部改变入参,函数外部也跟着被改变;因为他们(外部变量和入参变量)指向了同一个内存地址。 这样说来应该就好理解为啥是:

    list = [20, 16, 10, 5];
    random.shuffle(list)
    print ("正确 : ", list)

    而不是:

    list = [20, 16, 10, 5];
    thisIsNone=random.shuffle(list)
    print ("不是 : ", random.shuffle(list))
    print ("也不是 : ", thisIsNone)

    我也就是瞎唠哈,不对请别喷我。白猫黑猫,能帮助理解就是好方法。

    vipkwd

    ser***[email protected]

    6年前 (2020年09月04日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /