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

2024-10-02 00:41:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将以下函数应用于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, ')'

这是一个较长的代码,它使用列表时比较草率:

^{pr2}$

所以在第二段代码中,我得到了4个列表项,每一个都应该应用于一个最终的等式,z = ax + by,其中a和b独立于其他函数。在

它的目的是为了“编辑”这个等式 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

谢谢!在


Tags: 实例函数代码编辑列表bydefax

热门问题