Python如何实现每次调用数组时动态生成随机元素
问题原因
你当前的写法中,random.choice(ARR1) 仅在定义ARR2时执行一次,生成的随机值会直接固化为ARR2的最后一个元素,后续无论多少次访问ARR2都不会重新触发随机选择逻辑,因此三次打印结果完全相同。
实现方案
该需求可以轻松实现,常见实现方式有两种:
方案1:循环内每次重新构建数组
直接将ARR2的定义放到循环内部,每次循环都重新执行随机选择逻辑生成新的数组:
import random ARR1 = ['A', 'B', 'C', 'D'] for i in range(3): # 每次循环都重新生成ARR2 ARR2 = ['1', '2', '3', random.choice(ARR1)] print(ARR2)
方案2:封装为函数调用
如果需要多处使用该动态数组,可以把生成逻辑封装为函数,每次调用函数都会返回新的随机数组:
import random ARR1 = ['A', 'B', 'C', 'D'] def generate_arr2(): return ['1', '2', '3', random.choice(ARR1)] for i in range(3): # 每次调用函数都会生成新的数组 print(generate_arr2())
两种方案都可以达到你预期的输出效果,每次打印的最后一位都会重新随机选择ARR1中的元素。
内容的提问来源于stack exchange,提问作者pc131
相关产品推荐
相关产品推荐

