Pythonitertools.product方法代码实例

更新时间:2023-07-31 20:06:22 阅读: 评论:0

Pythonitertools.product⽅法代码实例
产学研一体化itertools.product:类似于求多个可迭代对象的笛卡尔积。
使⽤的形式是:
itertools.product(*iterables, repeat=1),野生乌龟
甲骨文汉字
施工面积product(X, repeat=3)等价于product(X, X, X)。宇宙飞行器
1. 直接使⽤时:分别⽣成元组,然后合成⼀个list
import itertools
aa = itertools.product(['西藏','瀑布','湖⽔'], ['⽉⾊','星空'])
河北教育网bb = list(aa)  #按照顺序⽣成笛卡尔积,repeat默认是1
print(bb)
2. 假设设置:repeat=3
random_list = list(itertools.product(['西藏','瀑布','湖⽔'], ['⽉⾊','星空'], repeat=3))
print(random_list) #此list长度为216
为什么会是216呢?
⾸先,在不设置 repeat 参数的时候,默认是1,⽣成的list长度时6 —— 这可以⽤数学的排列组合来表⽰,从第⼀个参数['西藏','瀑布','湖⽔']取出⼀个值,有3种可能;从第⼆个参数['⽉⾊','星空']取出⼀个值,有2种可能;故 3*2=6种结果。
然后,当设置 repeat=3 时,也就是说将 repeat=1(默认)的结果再重复2次后(也就是最后⼀共有3套⼀样的第⼀层结果)再进⾏排列组合,从第⼀个结果(6种结果)取出⼀个元素的可能有6种,同理,从第⼆第三个重复结果中取出⼀个元素的可能各有6种,于是它们的组合就有6*6*6=216种。
当然,也是先合成⼀个元组再组成list的。
3. 所以也能理解下⾯的结果是27种了吧
random_list = list(itertools.product(['西藏','瀑布','湖⽔'], repeat=3))
print(random_list)
因为第⼀层结果是3种可能;执⾏该操作3次,就形成了第⼀层的3套⼀样的结果(每个结果各有3种可能),然后再排列组合就是 3*3*3=27种结果。
4. 如果要从列表中随机取出⼏个不重复的元素的话(原来的列表本⾝元素不重复),可⽤ random.sample ⽅法。
import random
random.ed(1)  #设置随机数种⼦,可⽤来检测相同的随机数得到的结果是否⼀致清汤牛肉
n = 2
aa = random.sample(random_list, n)  #随机列表中的n个元素
print(aa)
也就是从上述27种结果中,随机取出2种,得到:
5. 此⽅法可以⽤于⽣成随机的坐标提高沟通能力
random_list = list(itertools.product(range(1,4), range(1,2)))
print(random_list)
n = 2
aa = random.sample(random_list, n)  #随机列表中的n个元素
print(aa)
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

本文发布于:2023-07-31 20:06:22,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1103453.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:结果   取出   元组   西藏   参数   希望   元素
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图