You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简化生成随机数列表的Python代码中的random函数调用?

简化随机列表生成的小技巧

嘿,作为编程新手能写出这样完整的功能真的很不错!你提到想简化生成列表时大量调用random函数的问题,确实有不少更简洁的写法,既能减少冗余代码,还能让逻辑更清晰,咱们一起来看看怎么优化:

原代码的核心逻辑梳理

先帮你理一理你原来生成列表的逻辑:

  • 生成e作为随机数的下限(1-9之间)
  • 列表c的长度是14 - g(g是1-9的随机数,所以长度在5到13之间),每个元素是e到123之间的随机数,最后排序
  • 列表d的逻辑和c一致,只是长度由h(同样是1-9的随机数)决定

简化方案:用列表推导式替代循环append

原来的while循环+append的写法可以用列表推导式直接完成,一行就能生成并排序列表,省去大量临时变量:

import random

# 定义随机数的下限
e = random.randrange(1, 10)

# 生成列表c:直接用列表推导式生成指定长度的随机数,再排序
c_length = 14 - random.randrange(1, 10)
c = sorted([random.randrange(e, 124) for _ in range(c_length)])

# 同理生成列表d
d_length = 14 - random.randrange(1, 10)
d = sorted([random.randrange(e, 124) for _ in range(d_length)])

# 打印生成的列表
print(c)
print(d)

# 判断并输出交集
common_elements = set(c) & set(d)
if common_elements:
    print("The following values are a match:", common_elements)
else:
    print("No match")

额外的小优化

  1. 去掉冗余的布尔判断:原代码里if bool(n) == True其实没必要,因为非空集合本身在布尔判断中就是True,空集合是False,直接判断common_elements即可。
  2. 减少临时变量:原来的g、h、f这些临时变量都可以省略,直接计算列表长度,让代码更清爽。

这样优化后,代码的功能和你原来的完全一致,但结构更简洁,可读性也更强啦!

内容的提问来源于stack exchange,提问作者Dezert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:05:53