Функция на итерацию в 2 списках / массивах - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь перебрать 2 списка в python, и для каждой итерации обработать функцию. Допустим, A = [40,30,25] и B = [45,35,25]. (Однако в моем реальном приложении A и B - это массивы предложений)

Я хочу, чтобы моя результирующая функция выполняла что-то вроде этого:

For A[1] & B[1]:
    print("Sum: ", A[1] + B[1])
For A[1] & B[2]: 
    print("Sum: ", A[1] + B[2])
For A[1] & B[3]:
    print("Sum: ", A[1] + B[3])

For A[2] & B[1]:
    print("Sum: ", A[2] + B[1])
For A[2] & B[2]:
    print("Sum: ", A[2] + B[2])
For A[2] & B[3]:
    print("Sum: ", A[2] + B[3])

For A[3] & B[1]:
    print("Sum: ", A[3] + B[1])
For A[3] & B[2]:
    print("Sum: ", A[3] + B[2])
For A[3] & B[3]:
    print("Sum: ", A[3] + B[2])

Я понимаю, что это, по сути, вложенный цикл for, но я не могу запустить его именно так, как хочу прямо сейчас. Благодаря моим собственным исследованиям мне показалось, что для правильной обработки мне нужно использовать функцию itertools zip.

Мой текущий код выглядит следующим образом:

for x,y in itertools.zip_longest(lst1, lst2, fillvalue=None):
        print("X: ",x, "\tY: ",y, "\nZ: ", nlp(x).similarity(nlp(y)))

Любая помощь приветствуется! Спасибо.

1 Ответ

1 голос
/ 21 марта 2019

Вам не нужно для пользователя itertools.Комментарий @ coldpseed является хорошим кратким ответом.Написание более расширенного будет выглядеть следующим образом:

for x in A:
    for y in B:
        print("X: ",x, "\tY: ",y, "\nZ: ", nlp(x).similarity(nlp(y)))

или поочередно с использованием индексов

for i in range (0, len(A)):
    for j in range (0, len(B)):
        x = A[i]
        y = B[j]
        print("X: ",x, "\tY: ",y, "\nZ: ", nlp(x).similarity(nlp(y)))
...