Как вытащить списки из функции?

Помогите пожалуйста достать из функции списки - zone = [] и zone2=[].

def foo(arr1, arr2):
        zone = []
        zone2=[]
        for i1, a1 in enumerate(arr1):
                for i2, a2 in enumerate(arr2):
                        if a2-a1<0:
                                zone.append(i1)
                                zone2.append(i2)
                                break

        print(zone,zone2)

x1 = [1.11, 1.11, 1.12, 1.12, 1.13, 1.08, 1.65, 1.65, 1.05, 1.05, 1.05, 1.05, 1.1, 1.1, 1.05] 
x2 = [1.66, 1.66, 1.58, 1.58, 1.61, 1.61, 1.82, 1.82, 1.65, 1.65, 1.77, 1.77, 1.65, 1.65, 1.46] 
   
foo(x1, x2)

Ответы (1 шт):

Автор решения: CrazyElf
  • возвращаете нужные вам значения в виде кортежа из функции через return
  • получаете результат работы функции
  • распаковываете результат-кортеж в отдельные переменные, если нужно
def foo(arr1, arr2):
    zone = []
    zone2 = []
    # основной код функции для примера не важен, я его пропускаю
    ...
    return zone, zone2

x1 = [1.11, 1.11, 1.12, 1.12, 1.13, 1.08, 1.65, 1.65, 1.05, 1.05, 1.05, 1.05, 1.1, 1.1, 1.05] 
x2 = [1.66, 1.66, 1.58, 1.58, 1.61, 1.61, 1.82, 1.82, 1.65, 1.65, 1.77, 1.77, 1.65, 1.65, 1.46] 
   
z1, z2 = foo(x1, x2)
print(z1, z2)
→ Ссылка