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

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

內(nèi)聯(lián)python中沒有計數(shù)器嗎?

內(nèi)聯(lián)python中沒有計數(shù)器嗎?

紅顏莎娜 2021-08-17 10:43:30
當(dāng)我嘗試將計數(shù)器放入 Python 的內(nèi)聯(lián)循環(huán)中時,它會告訴我語法錯誤。顯然這里它希望我為inot分配一個值k。任何人都可以幫助重寫內(nèi)聯(lián)循環(huán)嗎?aa = [2, 2, 1]k = 0b = [k += 1 if i != 2  for i in aa ] print(b)
查看完整描述

2 回答

?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個贊

你似乎誤解了你在做什么。這:


[x for y in z]

不是“內(nèi)聯(lián) for 循環(huán)”。一個for循環(huán)可以做任何事情,任何迭代迭代對象上。其中一個東西for回路可以做的就是創(chuàng)建一個項(xiàng)目列表:


my_list = []

for i in other_list:

    if condition_is_met:

        my_list.append(i)

列表解析占地面積只有這個用例一的for循環(huán):


my_list = [i for i in other_list if condition_is_met]

這就是為什么它被稱為“列表理解”而不是“內(nèi)聯(lián) for 循環(huán)”——因?yàn)樗粍?chuàng)建列表。您可能使用for循環(huán)的其他事情,比如迭代一個數(shù)字,您不能直接使用列表理解來做。


對于您的特定問題,您正在嘗試k += 1在列表理解中使用。此操作不返回任何內(nèi)容 - 它只是修改變量k- 因此當(dāng) python 嘗試將其分配給列表項(xiàng)時,操作失敗。如果你想用 計數(shù)k,你應(yīng)該只使用一個常規(guī)for循環(huán):


for i in aa:

    if i != 2:

        k += 1

或使用列表理解來間接衡量您想要的內(nèi)容:


k += len([i for i in aa if i != 2])

在這里,我們用一個列表理解來構(gòu)建每一個元素的列表i中aa這樣i != 2,那么我們就在該列表中元素的個數(shù),并把它添加到k。由于這個操作實(shí)際上產(chǎn)生了一個自己的列表,所以代碼不會崩潰,整體效果是一樣的。如果您想在for循環(huán)中執(zhí)行更復(fù)雜的事情,則此解決方案并不總是可行的- 而且它的效率也稍低,因?yàn)榇私鉀Q方案實(shí)際上需要創(chuàng)建新列表,而這對您來說不是必需的試圖實(shí)現(xiàn)。


查看完整回答
反對 回復(fù) 2021-08-17
?
慕桂英3389331

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個贊

你可以len()像這樣使用

print(len([i for i in a if i != 2]))


查看完整回答
反對 回復(fù) 2021-08-17
  • 2 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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