python - 在python中循环,不想从循环中得到相同的结果
问题描述
目前我正在学习数据科学,并且真正从零开始我现在正在尝试在 Python 上练习几件事
在这种情况下,我得到一个类别,应该创建一个包
list_category = ['c1','c2','c3','c4','c5','c6','c7','c8','c9','c10']
在这种情况下,我想得到这个期望的结果:
一个。在捆绑包中没有得到相同的结果,例如(c1,c1,c1)
b。一个捆绑包被允许获得相同的两个类别,例如(c1,c2,c1)
c。不允许具有不同顺序的相同结果,例如(c1 - c2 - c3 = c2 - c1 - c3)
我尝试使用此代码,但显然我仍然得到很多相同的结果
list_category = ['c1','c2','c3','c4','c5','c6','c7','c8','c9','c10']
bundling_list = []
for i in list_category:
category1 = i
for y in list_category:
if i != y:
category2 = y
for c in list_category:
if c != y:
category3 = c
bundling = i + '-' + y + '-' + c
bundling_list.append(bundling)
print(bundling_list)
试图谷歌一些,但到目前为止我没有得到我预期的答案,有没有办法解决这个谢谢!
解决方案
只需从 python 导入 random 模块并使用 random.choice 方法从列表中选择一个随机项目。然后通过避免选择的项目创建一个新列表。这样可以从列表中收集 3 个唯一项目。
- 您也可以简单地从列表中删除使用随机选择的项目,从而避免创建 2 个额外列表。
我认为这可能会对您有所帮助:)
import random
list_category = ['c1','c2','c3','c4','c5','c6','c7','c8','c9','c10']
l2=[]
l3=[]
n1=random.choice(list_category)
for i in list_category:
if i!=n1:
l2.append(i)
n2=random.choice(l2)
for i in l2:
if i!=n2:
l3.append(i)
n3=random.choice(l3)
bundle="-".join([n1,n2,n3])
print(bundle)
推荐阅读
- unity3d - Unity 切换状态更改导致 StackOverflow
- batch-file - 如何在批处理脚本中获取文件名?
- image-processing - 从图像中提取水印
- android - 如何从网站获取安卓应用程序的任何数据
- go - 如何在golang中对固定长度的数组进行排序?
- java - 带有 JSP 的 Spring - 不调用控制器类
- python - 使用 lxml 格式化 xml 脚本
- postgresql - 如何在具有子句的聚合函数旁边选择相应的记录
- javascript - 无法读取未定义的“fn”属性?
- javascript - 使用 onBlur 隐藏表单,但这与提交按钮有冲突