《 Python List 列表全实例详解系列(八)》__随机列表元素

《 Python List 列表全实例详解系列(八)》

__随机列表元素

    本章目录:

  十、随机列表元素

方法1:random.shuffle

方法2:random.sample


十、随机列表元素

方法1:random.shuffle

可以使用shuffle函数进行随机列表元素,是打乱序列里面的元素,并随机排列的。

语  法

shuffle(listname)

参  数

注  意

shuffle()需要导入 random 模块,然后通过 random 静态对象调用该方法。

shuffle函数中是不能够接受字符串这种数据类型的,需要将字符串转换成其他数据类型。

如果直接输入字符串则会报错。

返 回 值

该函数没有返回值

知识拓展

1、使用参数对列表进行无序排列,每次无序排列时都会产生相同的结果

使用随机模块的random.seed()方法,每次随机洗牌都可能产生相同的结果。将种方法与随机播放方法结合使用,即每次调用shuffle方法之前使用相同的seed值时,在执行多次shuffle操作之后,我们都会得到相同的列表。

2、random.shuffle不适用于字符串。它不能接受字符串参数,将出现错误。

TypeError:'str' object does not support item assignment

得到类型错误:“str”对象不支持项分配。

解决办法:

将字符串转换为字符列表。随机地转换字符列表序列,再将无序排列的列表转换为字符串

实 例

代  码

from random import shuffle

mlist= ["小猫咪", "小白兔", "小青蛙", "小狗狗", "大灰狼", "小鸟"]

print(mlist)

shuffle(mlist)

print(mlist)

运行结果

['小猫咪', '小白兔', '小青蛙', '小狗狗', '大灰狼', '小鸟']

['小白兔', '大灰狼', '小狗狗', '小猫咪', '小鸟', '小青蛙']

代  码

from random import shuffle

mlist= [1,2,3,4,5,6,7,8]

print(mlist)

shuffle(mlist)

print(mlist)

运行结果

[1, 2, 3, 4, 5, 6, 7, 8]

[4, 6, 8, 1, 3, 5, 7, 2]

#使用random.shuffle随机播放字符串列表

代  码

from random import shuffle

mlist= ["愿你开怀永不孤单,让快乐弥漫", "愿星光为你,漆黑里指路", "愿清风为你,吹走那苦闷", "逆境清醒愿你战胜自己昂首扬帆将来"]

shuffle(mlist)

print("第一次shuffle之后的随机字符串列表:",mlist)

shuffle(mlist)

print("第二次shuffle之后的随机字符串列表:",mlist)

shuffle(mlist)

print("第三次shuffle之后的随机字符串列表:",mlist)

shuffle(mlist)

print("第四次shuffle之后的随机字符串列表:",mlist)

运行结果

第一次shuffle之后的随机字符串列表: ['愿清风为你,吹走那苦闷', '愿星光为你,漆黑里指路', '愿你开怀永不孤单,让快乐弥漫', '逆境清醒愿你战胜自己昂首扬帆将来']

第二次shuffle之后的随机字符串列表: ['愿你开怀永不孤单,让快乐弥漫', '愿清风为你,吹走那苦闷', '愿星光为你,漆黑里指路', '逆境清醒愿你战胜自己昂首扬帆将来']

第三次shuffle之后的随机字符串列表: ['愿你开怀永不孤单,让快乐弥漫', '逆境清醒愿你战胜自己昂首扬帆将来', '愿清风为你,吹走那苦闷', '愿星光为你,漆黑里指路']

第四次shuffle之后的随机字符串列表: ['愿星光为你,漆黑里指路', '愿清风为你,吹走那苦闷', '愿你开怀永不孤单,让快乐弥漫', '逆境清醒愿你战胜自己昂首扬帆将来']

代  码

import random

mlist = [1,2,3,4,5,6,7,8,9]

print ("原来列表是: ", mlist )

random.seed(5)

random.shuffle(mlist)

print("现在列表是:", mlist )

mlist = [1,2,3,4,5,6,7,8,9]

random.seed(5)

random.shuffle(mlist)

print("现在列表是:", mlist)

运行结果

原来列表是:  [1, 2, 3, 4, 5, 6, 7, 8, 9]

现在列表是: [3, 4, 2, 1, 9, 8, 7, 6, 5]

现在列表是: [3, 4, 2, 1, 9, 8, 7, 6, 5]

分析解释:

使用参数对列表进行无序排列,每次无序排列时都会产生相同的结果

使用随机模块的random.seed()方法,每次随机洗牌都可能产生相同的结果。将种方法与随机播放方法结合使用,即每次调用shuffle方法之前使用相同的seed值时,在执行多次shuffle操作之后,我们都会得到相同的列表。

random.shuffle不适用于字符串。它不能接受字符串参数,将出现错误。

TypeError:'str' object does not support item assignment

得到类型错误:“str”对象不支持项分配。

解决办法:

将字符串转换为字符列表。随机地转换字符列表序列,再将无序排列的列表转换为字符串。

代  码

import random

str1 = "逆境清醒"

print ("原来字符串是: ",  str1)

mlist = list(str1)

random.seed(6)

random.shuffle(mlist)

str1 = ''.join(mlist)

print ("现在字符串是: ", str1)

运行结果

原来字符串是:  逆境清醒

现在字符串是:  醒清境逆

代  码

import random

str1 = "Adversity Awake"

print ("原来字符串是: ",  str1)

mlist = list(str1)

random.seed(5)

random.shuffle(mlist)

str1 = ''.join(mlist)

print ("现在字符串是: ", str1)

运行结果

原来字符串是:  Adversity Awake

现在字符串是:  vekaeditAyAswr

使用相同的顺序一次洗牌两个Python列表(随机播放两个列表,但保持相同的随机播放顺序)。例如,一个列表包含水果名,另一个列表包含水果颜色,同步随机变化时,两个列表内的水果名和颜色必须对得上。

代  码

import random

mlist = ['红苹果', '香蕉', '橘子']

colorlist = ['红色','黄色','橙色']

print("随机变化前")

print("水果名:  ", mlist)

print("水果颜色:  ", colorlist)

tb_list = list(zip(mlist,  colorlist))

random.shuffle(tb_list)

mlist, colorlist =  zip(*tb_list)

print()

print("随机变化后")

print("水果名:  ", mlist)

print("水果颜色: ", colorlist)

运行结果

随机变化前

水果名:   ['红苹果', '香蕉', '橘子']

水果颜色:   ['红色', '黄色', '橙色']

随机变化后

水果名:   ('橘子', '红苹果', '香蕉')

水果颜色:  ('橙色', '红色', '黄色')

代  码

运行结果

方法2:random.sample:

random.sample()方法返回新列表,其中包含传递给它的样本大小。如果我们传递的示例大小与列表的大小相同,它将返回新列表,该列表是原始列表的无序版本

语  法

new_list = random.sample(mlist,  len(mlist))

参  数

注  意

返 回 值

返回新列表

知识拓展

实 例

代  码

import random

mlist = [1,2,3,4,5,6,7,8,9]

print ("原来列表是 :  ",  mlist)

new_list = random.sample(mlist,  len(mlist))

print ("现在列表是  : ",  new_list)

运行结果

原来列表是 :   [1, 2, 3, 4, 5, 6, 7, 8, 9]

现在列表是  :  [8, 9, 6, 3, 1, 2, 4, 5, 7]

代  码

import random

mlist = ['逆','境','清','醒']

print ("原来列表是 :  ",  mlist)

new_list = random.sample(mlist,  len(mlist))

print ("现在列表是  : ",  new_list)

运行结果

原来列表是 :   ['逆', '境', '清', '醒']

现在列表是  :  ['逆', '醒', '境', '清']

代  码

import random

mlist = ['A', 'd', 'v', 'e', 'r', 's', 'i', 't', 'y', ' ', 'A', 'w', 'a', 'k', 'e']

print ("原来列表是 :  ",  mlist)

new_list = random.sample(mlist,  len(mlist))

print ("现在列表是  : ",  new_list)

运行结果

原来列表是 :   ['A', 'd', 'v', 'e', 'r', 's', 'i', 't', 'y', ' ', 'A', 'w', 'a', 'k', 'e']

现在列表是  :  ['k', 'w', 's', 'a', 'e', 't', 'A', 'v', ' ', 'r', 'd', 'i', 'y', 'A', 'e']

代  码

运行结果

代  码

运行结果

请点击下一章查看后续实例详解 ------》

逆境清醒 Python List列表——全实例详解系列
1 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念
2 《 Python List 列表全实例详解系列(二)》__创建列表(5种方法)
3 《 Python List 列表全实例详解系列(三)》__列表添加元素(4种方法)
4 《  Python List列表全实例详解系列(四)》__列表删除元素(4种方法)删除重复元素方法
5 《 Python List 列表全实例详解系列(五)》__修改元素(修改单个、修改一组)
6 《 Python List 列表全实例详解系列(六)》__查找元素
7 《 Python List 列表全实例详解系列(七)》__索引和切片
8 《 Python List 列表全实例详解系列(八)》__随机列表元素
9 《 Python List 列表全实例详解系列(九)》__列表反转(6种方法)
10 《 Python List 列表全实例详解系列(十)》__清空列表 
11 《 Python List 列表全实例详解系列(十一)》__列表运算符
12 《 Python List 列表全实例详解系列(十二)》__列表内置及常用函数
13 《 Python List 列表全实例详解系列(十三)》__相关技巧
14 《 Python List 列表全实例详解系列(十四)》__列表练习实例

  

 推荐阅读:

14 ​​
13 用代码过中秋,python海龟月饼你要不要尝一口?
12 Python List 列表(创建、索引和切片、列表反转、添加删除修改查找元素)__实例详解(全)
11 用代码写出浪漫合集(python 绘制爱心、玫瑰花,字符画爱心、前端特效玫瑰、爱心)
10 Python函数方法实例详解全集(更新中...)
9 matplotlib 自带绘图样式效果展示速查(全)
8 手机屏幕坏了____怎么把里面的资料导出(18种方法)
7 2022年9月多家权威机构____编程语言排行榜__薪酬状况
6 Python中Print()函数的用法___详解(全,例多)
5 色彩颜色对照表系列(1~5)(16进制、RGB、CMYK、HSV、中英文名)
4 Tomcat端口配置(详细)
3 Tomcat 启动闪退问题解决集(八大类详细)
2 Apache Tomcat 各版本发行时间( v10.1.0-M17~v3.0)
1 Tomcat10安装(Windows环境)(详细)

猜你喜欢

转载自blog.csdn.net/weixin_69553582/article/details/126775646