Python - Эффективно применяя функцию - PullRequest
0 голосов
/ 28 апреля 2020

Я новичок в python, поэтому мой вопрос может быть базовым c, но есть ли способ изменить две переменные одновременно при использовании функции. моя проблема в том, что я сейчас использую double для l oop, и это создает много бесполезных значений. Как мы понимаем лучше из примера, вот быстро созданный:

results=[]
Q1=[1,2,3]
P1=[4,5,6]
def findcash(Q,P):
    r=Q/P
    results.append(r)
for i in Q1:
    for j in P1:
        findcash(i,j)

теперь вы видите, что мой вектор возврата будет иметь значения 1/4; 1/5; 1/6 ... где на самом деле я хотел бы, чтобы Q1 изменился, когда P1changes, так что результаты = [1/4 2/5 3/6]

Cheers

Ответы [ 2 ]

2 голосов
/ 28 апреля 2020

Вы можете использовать встроенный zip

results = [Q/P for Q, P in zip(Q1, P1)]

, который отчасти эквивалентен этому: (не совсем, но идея та же самая (вы знаете - как молния))

for i in range(min(len(Q), len(P))):
     Q = Q1[i]
     P = P1[i]
     ...
0 голосов
/ 28 апреля 2020
results=[]
Q1=[1,2,3]
P1=[4,5,6]
def findcash(Q,P):
    r=Q/P
    results.append(r)
for i,j in zip(Q1, P1):
  findcash(i,j)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...