第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

For循環(huán)代碼到python中的一行代碼?

For循環(huán)代碼到python中的一行代碼?

慕尼黑的夜晚無繁華 2023-02-07 10:43:50
有人可以解釋以下轉(zhuǎn)換為單行代碼的循環(huán)代碼嗎?代碼:total_price = 0for cost in gift_costs:    if cost < 25:        total_price += cost * 1.08轉(zhuǎn)換后的一行代碼:total_price = (gift_costs[gift_costs < 25]).sum() * 1.08
查看完整描述

3 回答

?
慕斯709654

TA貢獻1840條經(jīng)驗 獲得超5個贊

您沒有明確說明,但很明顯您使用的是 numpy 數(shù)組。所以讓我們打破這一行,以一些任意數(shù)組為例:


>>> gift_costs = numpy.array([10, 22, 35, 41])

>>> total_price = (gift_costs[gift_costs < 25]).sum() * 1.08

>>> total_price

34.56

  1. total_price = : 表達式右側(cè)的內(nèi)容將被分配給total_price變量。

  2. gift_costs < 25:每當您將比較運算符(例如<)與 numpy 數(shù)組一起使用時,將為數(shù)組的每個項目評估該條件語句。然后,您將獲得一個充滿布爾值的新數(shù)組,True如果給定值與條件匹配,則布爾值將是,False否則。因此,對于上面的示例,您將得到以下內(nèi)容:array([True, True, False, False])

  3. gift_costs[gift_costs < 25]: 考慮到我們剛才提到的內(nèi)容,我們現(xiàn)在要求gift_costs返回其值,其位置在以下序列中是True[True,  True, False, False]。這些元素是:10 和 22,返回的對象是:array([10, 22])

  4. .sum():Numpy 數(shù)組對象有一個名為 的方法sum(),它返回數(shù)組的總和(∑)。在我們的示例中,這是 10 + 22 = 32。

  5. * 1.08: 最后將sum()方法(32)返回的值乘以1.08,等于34.56


免責聲明:請原諒我的英語,我盡力讓自己清楚。


查看完整回答
反對 回復(fù) 2023-02-07
?
蕪湖不蕪

TA貢獻1796條經(jīng)驗 獲得超7個贊

基本上是一樣的。for 循環(huán)使用 if 子句來確定成本 <25,然后對其應(yīng)用乘法 * 1.08。one 子句使用 [gift_costs < 25] 進行過濾,隨后應(yīng)用相同的乘法。另一種可能性(在計算時間方面也更有效)是列表理解。



查看完整回答
反對 回復(fù) 2023-02-07
?
慕姐8265434

TA貢獻1813條經(jīng)驗 獲得超2個贊

我們也可以在沒有 numpy 的情況下編寫一行代碼。請檢查這個。

l = [10, 22, 35, 41]

t = sum((x for x in l if x <25))*1.08

我使用了 sum 函數(shù)并為函數(shù)的參數(shù)創(chuàng)建了一個生成器。
發(fā)電機的方程很簡單。只需閱讀以下內(nèi)容。
“如果 x 小于 25,則在列表 l 中取一個 x”
生成器收集條件中的所有 x,然后轉(zhuǎn)移到求和函數(shù)...

看起來很簡單是不是???


查看完整回答
反對 回復(fù) 2023-02-07
  • 3 回答
  • 0 關(guān)注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號