了解如何在Python中乘法元组中的特定值

2024-09-29 23:23:25 发布

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

我绝不是专家,也不自称是专家,但这是我一直以来最难做的练习。我在理解如何在一个元组中调用值并将它们相乘时遇到问题。我继续得到以下输出。在

def cost( aBlock ):

 cost = portfolio[1]*portfolio[2]

print(cost)

output comes out to >>> function cost at 0x0594AD68

我不清楚他们为什么要我用“aBlock”参数。。。在

我从哪里开始这个项目?在

成堆的股票。一组股票作为一系列属性,包括购买日期、购买价格、股票数量和股票代码。我们可以在一个元组中为每个股票块记录这些信息,并对这些块执行一些简单的操作。在

让我们梦想我们有以下的投资组合。在

^{pr2}$

我们可以将每一块股票表示为一个5元组,包含购买日期、购买价格、股票、股票代码和当前价格。在

portfolio= [ ( "25-Jan-2001", 43.50, 25, 'CAT', 92.45 ),
( "25-Jan-2001", 42.80, 50, 'DD', 51.19 ),
( "25-Jan-2001", 42.10, 75, 'EK', 34.87 ),
( "25-Jan-2001", 37.58, 100, 'GM', 37.58 )
]

开发一个函数来检查每个区块,将股票乘以购买价格,并确定投资组合的总购买价格。在

def cost( aBlock ):
 #compute price times shares
return cost

开发第二个函数,该函数检查每个区块,将股票乘以购买价格,将股票乘以当前价格,以确定获得或损失的总金额。在

def roi( aBlock, priceToday ):
  #use cost( aBlock ) to get cost
  #compute priceToday times shares
return the difference

Tags: to函数def价格区块jan股票股票代码
1条回答
网友
1楼 · 发布于 2024-09-29 23:23:25

有两种方法可以访问元组中的值:

  1. 按索引:shares = block[2]
  2. 通过解压缩所有值:purchase_date, purchase_price, shares, symbol, price = block

有了这两种方法,这里有两种可能的解决方法

def total_purchase_price(stocks):
    res = []
    for block in stocks:
        shares = block[2]
        purchase_price = block[1]
        res += [shares * purchase_price]
    return res

或者

^{pr2}$

您可以这样调用这些函数:

portfolio= [ ( "25-Jan-2001", 43.50, 25, 'CAT', 92.45 ),
( "25-Jan-2001", 42.80, 50, 'DD', 51.19 ),
( "25-Jan-2001", 42.10, 75, 'EK', 34.87 ),
( "25-Jan-2001", 37.58, 100, 'GM', 37.58 )
]

print total_purchase_price(portfolio)
print total_wins(portfolio)

相关问题 更多 >

    热门问题