将函数应用于多个列表(Python)

时间:2014-02-11 11:22:36

标签: python function class

我想将以下函数应用于abc的多个实例,但似乎我无法将此函数应用于列表。目标是计算一些不等式,最后将它们插入一个新的z = ax + bx方程,以便找到最低或最高有序对。

这是一个更清晰的代码,省略了列表的使用:

xMin,yMin = 0,0
a,b,c = 2,-3,12
enter code here
def FindVar(object):
    x = (-b*yMin)/a + c/a
    y = (-a*xMin)/b + c/b
print '(', FindVar.x, ',', yMin, ')'
print '(', xMin, ',', FindVar.y, ')'

这是一个更长的代码,它使用更加粗糙的列表:

xMin = 0
yMin = 0

def i1():
    a,b,c = 2,-3,12

    #Create and append l1
    global l1
    l1 = []
    l1.extend((a,b,c))

    #Find X,Y
    y = (-a*xMin)/b + (c/b)
    x = (-b*yMin)/a + c/a

    #Add to list
    pair = []
    pair.append((xMin,y))
    pair.append((x,yMin))

    print '%sx + %sy = %s' % (a,b,c)
    print 'RETURNS'
    print pair[0], z1
    print pair[1], z2

def i2():
    a,b,c = 1,1,5

    #Create and append l2
    global l2
    l2 = []
    l2.extend((a,b,c))

    #Find X,Y
    y = (-a*xMin)/b + c/b
    x = (-b*yMin)/a + c/a

    #Add to list
    pair = []
    pair.append((xMin,y))
    pair.append((x,yMin))

    print '%sx + %sy = %s' % (a,b,c)
    print 'RETURNS'
    print pair[0], z1
    print pair[1], z2

因此,对于第二位代码,我最终得到4个列表项,每个列表项应该应用于最终等式z = ax + by,其中a和b独立于其他函数。

编辑:目的是采用类似“z = 2x + 7y”的等式并使其遵守规则: 2x - 3y≤12, x +y≤5, 3x +4y≥24, x≥0, y≥0。

我取这些方程并将它们放入一个列表中,使a,b,c = [2,-3,12],[1,1,5],[3,4,24](其中a = 2 ,1,3,b = -3,1,4,和c = 12,5,24)。然后我可以根据三个实例中的每一个找到(x,y)并将每个有序对插入到我的初始“z = 2x + 7y”中。所有这一切的要点是获取数据集并找出哪个集合最有效。

在代码的先前版本中使用

z1和z2将“z = 2x + 7y”应用于第一等式的第一和第二有序对。

编辑2: 这是我想出的更干净的代码。

xMin = 0
yMin = 0

a = [10,11,1]
b = [7,-8,1]
c = [200,63,42]

def findxy(a,b,c):
    #Finds x,y for ax+by=c
    x = (-b*yMin)/a + c/a
    y = (-a*xMin)/b + c/b

    #The results, followed by the z function "z = 15x + 15y"
    if x >= xMin:
        print '(%s, %s)' % (x,yMin), 15 * x + 15 * yMin
    if y >= yMin:
        print '(%s, %s)' % (xMin,y), 15 * xMin + 15 * y

map(findxy,a,b,c)

结果

  
    
(20, 0) 300
(0, 28) 420
(5, 0) 75
(42, 0) 630
(0, 42) 630
    
  

谢谢!

1 个答案:

答案 0 :(得分:1)

要将函数应用于列表中的每个对象,可以使用内置函数map。 传递给map的列表可以包含基元,类实例,元组或列表。