python - 当使用许多变量时,如何使循环更短、更清晰?
问题描述
有没有一种让循环看起来更干净的好方法?我可以以某种方式在下面制作两个循环以看起来更干净,更短吗?是否有不同的方法来定义所有参数 = 0?
current = []
voltage = []
#parameters add shift value with every device loop
m = 0
n = 0
t = 0
u = 0
w = 0
for device in range(0, rows*columns):
m += shift_horizontal_per_device
n += shift_vertical_per_device
t += shif_param_a_per_device
u += shif_param_b_per_device
w += shif_param_c_per_device
# parameters add shift value with every pad loop
o = 0
l = 0
p = 0
r = 0
s = 0
for pad in range(0, pads):
o += shift_horizontal_per_pad
l += shift_vertical_per_pad
p += shif_param_a_per_pad
r += shif_param_b_per_pad
s += shif_param_c_per_pad
x = np.linspace(voltage_min,voltage_max,ids_per_pad)
y = (lambda a,b,c,x: eval(math_fun))(a+p+t,b+r+u,c+s+w,x)
x += o+m
y += n+l
voltage.extend(x)
current.extend(y)
解决方案
我看到的最不复杂的方式可能是:
current = []
voltage = []
m, n, t, u, w = 0, 0, 0, 0, 0
for device in range(0, rows*columns):
m += shift_horizontal_per_device
n += shift_vertical_per_device
t += shif_param_a_per_device
u += shif_param_b_per_device
w += shif_param_c_per_device
o, l, p, r, s = 0, 0, 0, 0, 0
for pad in range(0, pads):
o += shift_horizontal_per_pad
l += shift_vertical_per_pad
p += shif_param_a_per_pad
r += shif_param_b_per_pad
s += shif_param_c_per_pad
x = np.linspace(voltage_min,voltage_max,ids_per_pad)
y = (lambda a,b,c,x: eval(math_fun))(a+p+t,b+r+u,c+s+w,x)
x += o+m
y += n+l
voltage.extend(x)
current.extend(y)
推荐阅读
- javascript - 清除后重新开始间隔
- java - 从 geoQuery 向 recyclerView 添加唯一项目
- c# - .Net Framework 4.7.2 引用 .Net Standard 2.0 项目
- lisp - 如何使用参数迭代函数,参数是 lisp 中的文件名?
- python - 句子相似性错误的通用句子编码
- python - 使用自制软件更新 python3 时,我收到一条错误消息“未安装 python3”
- python - 调用 WebSocket.close 时现有等待会发生什么
- python - PyCharm 中 Python 网络爬虫的问题。(初学者)
- spring-boot - Zuul 代理在 Tomcat vai SpringBootServlet 上不起作用
- javascript - 仅当输入有数据时才启用提交按钮