如何将Python代码改造为循环,重复调用返回多组5元素emoji采样结果
循环生成多组5元素随机emoji采样结果的改造方案
改造说明
- 原有单次采样的逻辑不需要做复杂改动,只需要把采样语句放入指定次数的循环中,外层存储每次循环生成的采样列表即可
- 顺带修正原有代码里的缩进bug:原
listToString函数中的return str1写在了for循环内部,会导致遍历到第一个元素就提前返回,根本拼不完整个列表的内容 - 可以通过修改循环次数的参数,自由控制需要生成的采样组数
改造后完整可运行代码
import random emoji_list = ['😀', '😃', '😄', '😁', '😆', '😅', '😂', '🤣','😊', '😇', '🙂', '🙃', '😉', '😌', '😍', '🥰', '😘', '😗','😙', '😚', '😋', '😛', '😝', '😜', '🤪', '🤨', '🧐', '🤓', '😎', '🤩', '🥳', '😏', '🥺', '😳', '🥶', '😱'] # 按需修改:需要生成多少组采样结果,直接改这个数值即可 GROUP_NUM = 5 # 存储所有组的采样原始列表 all_sampled_groups = [] def listToString(sampled_list): str1 = "" for i in sampled_list: str1 += i # 修正缩进:遍历完整列表后再返回拼接的字符串 return str1 # 循环执行采样逻辑 for group_idx in range(GROUP_NUM): sampled_list = random.sample(emoji_list, k=5) all_sampled_groups.append(sampled_list) # 输出每组的结果,方便查看 print(f"第{group_idx+1}组原始采样列表:{sampled_list}") print(f"第{group_idx+1}组拼接后字符串:{listToString(sampled_list)}")
可选调整方案
- 若需要跨组采样不出现重复元素(即所有组合计的元素不重复),可以在每次采样后,把已经抽到的元素从待采样的
emoji_list里剔除再进行下一次采样 - 若需要复现固定的采样结果,可在导入random后添加
random.seed(固定数字),保证每次运行生成的采样序列完全一致
内容的提问来源于stack exchange,提问作者DevMateus
相关产品推荐
相关产品推荐

