Рефакторинг кода Python: динамическая распаковка списка - PullRequest
0 голосов
/ 06 декабря 2018

Мне дан диапазон частот start, end и целое число n:1<=n<=5.Задача состоит в том, чтобы напечатать все 5 промежуточных точек с линейным интервалом в определенном формате (для других инструментов, расположенных ниже по потоку, для дальнейшей обработки. Эта часть здесь не является импом). Если n меньше 5, последние частотные переменные должны быть по умолчанию.до 0 в печати.У меня есть рабочий код, приведенный ниже .. Я хотел получить более "питонический" рефакторинг.Части фрагмента, которые мне особенно не нравятся:

  1. Нет встроенной поддержки динамической распаковки списка в меньшее количество переменных.Я использовал решение из здесь - которому более 2 лет, поэтому я ищу новую перспективу
  2. Мне не нравится преобразовывать массив np в список .. Может ли np быть пока-пропущено в целом .. есть ли стандартная библиотека, эквивалентная диапазону / пробелу?

Фрагмент кода: -

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 = '')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...