if c == list:
проверяет, если c
является type
т.е. list
также, если if i > a and i < b:
никогда не вычисляет True
вы никогда не достигнете вашего оператора возврата поэтому по умолчанию return None
, так как все функции питона сделать, не указать возвращаемое значение, я представляю вам хочу что-то вроде:
Az = [5,4,25.2,685.8,435,2,8,89.3,3,794]
def azimuth(a,b,c):
new = []
if isinstance(c ,list):
for i in c:
if a < i < b:
new.append(i)
return new # return outside the loop unless you only want the first
Что может быть упрощена:
def azimuth(a, b, c):
if isinstance(c, list):
return [i for i in c if a < i < b]
return [] # if c is not a list return empty list
Если вы ш муравей индекс тоже использует enumerate
:
def azimuth(a, b, c):
if isinstance(c, list):
return [(ind,i) for i, ind in enumerate(c) if a < i < b]
return []
Если вы хотите их отдельно:
def azimuth(a,b,c):
inds, new = [], []
if isinstance(c ,list):
for ind, i in enumerate(c):
if a < i < b:
new.append(i)
inds.append(ind)
return new,inds #
Затем распаковывает:
new, inds = azimuth(10, 300, Az)
знать местоположение элемента в списке вы можете использовать 'Az.index (пункт)', которые дают вам положение первое появление элемента внутри вашего списка, и если вы хотите, чтобы все позиции, вы можете использовать 'enumerate (Az)', которые возвращают список кортежей '(position, item)' – Copperfield