【问题标题】:Python - Efficiently applying functionPython - 有效地应用函数
【发布时间】:2020-04-27 22:22:15
【问题描述】:

我对 python 很陌生,所以我的问题可能是基本的,但有没有办法在使用函数时同时更改两个变量。 我的问题是我目前使用双 for 循环来执行此操作,它会创建很多无用的值。 正如我们通过示例更好地理解的那样,这是一个快速制作的:

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 在 P1 改变时改变所以结果 = [1/4 2/5 3/6]

干杯

【问题讨论】:

  • 你不能在函数范围内改变一个全局变量,除非你在那里声明它global
  • 听起来你想zip列表

标签: python function variables


【解决方案1】:

你可以使用内置的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]
     ...

【讨论】:

    【解决方案2】:
    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)
    

    【讨论】:

      猜你喜欢
      • 2018-04-21
      • 2015-11-17
      • 1970-01-01
      • 2016-09-27
      • 2019-09-17
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多