重构python代码:lis的动态解包

2024-06-26 17:43:45 发布

您现在位置:Python中文网/ 问答频道 /正文

给我一个频率范围startend和一个整数n:1<=n<=5。任务是以特定格式打印所有5个线性间隔的中点(以便下游的其他工具进一步处理)。。这部分不是小鬼) 如果n小于5,则最后一个频率变量应默认为打印中的0。我的工作代码如下。。我想得到更多的“pythonic”重构。我特别不喜欢的片段部分:

  1. 不支持将列表动态解包到较少的变量中。我使用了一个来自here的解决方案,它已经有2年多的历史了,所以我在寻找一个新的视角
  2. 我不喜欢把np数组转换成list。。np能全部通过吗。。是否有标准的库范围/linspace等价物?你知道吗

代码代码段:-你知道吗

import sys
import numpy as np

max = 5
n=int(sys.argv[1])
if n>max:
  print("No of frequency larger than "+ str(max) + " ..resetting")
  n=max

if n<1:
  print("No of frequency less than 1 resetting to 1")
  n=1

fr1=0
fr2=0
fr3=0
fr4=0
fr5=0

start = 5060000
end   = 6165000
range = end-start
inc   = range/(n+1)

ret_list = np.arange(start+inc,end,inc).tolist()[:n]
ret_list = ret_list + [0]*(max-n)
fr1,fr2,fr3,fr4,fr5 = ret_list

print(".fr1.",fr1, sep = '')
print(".fr2.",fr2, sep = '')
print(".fr3.",fr3, sep = '')
print(".fr4.",fr4, sep = '')
print(".fr5.",fr5, sep = '')

Tags: npstartmaxseplistinc频率end