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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何調(diào)整 for 循環(huán)以便它只打印一次列表?

如何調(diào)整 for 循環(huán)以便它只打印一次列表?

慕的地8271018 2023-04-11 15:54:05
我有一些示例代碼如下:import numpy as npimport pandas as pdx = range(1, 12)arr1 = np.random.randint(x)arr2 = np.array(x)arr3 = np.random.randint(x)arr4 = np.random.randint(x)arr5 = np.random.randint(0, 2, 11)dict_df = {    'arr1' : arr1,    'arr2' : arr2,    'arr3' : arr3,    'arr4' : arr4,    'arr5' : arr5}d = pd.DataFrame(dict_df)num_count = 0list_of_num = []for i in d.index:    number = d['arr1'][i]    for num in d['arr5']:        if num == 1:            num_count = 1            number = number            list_of_num.append(number)        elif num == 0:            num_count = 0print(list_of_num)我正在嘗試構(gòu)建列表,如果列中的所有列前面arr5都有 -1,則它們都會(huì)附加到列表中。我從中收到的輸出是:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8]代碼的問(wèn)題是我誤用了for循環(huán),這就是為什么列表重復(fù)了這么多次的原因。我怎樣才能更改代碼以使代碼不會(huì)重復(fù)?
查看完整描述

1 回答

?
翻翻過(guò)去那場(chǎng)雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

看來(lái)您并不打算嵌套循環(huán)。外循環(huán)遍歷每一行。然后,對(duì)于外循環(huán)的每次迭代,內(nèi)循環(huán)遍歷每一行。要同步移動(dòng)兩列,您可以編寫(xiě)一個(gè)循環(huán):

for i in d.index:
    if d['arr5'][i]:
        list_of_num.append(d['arr1'][i])
        num_count += 1

這當(dāng)然是非常低效的,并且首先放棄了使用 numpy 或 pandas 的所有好處。您可以使用布爾掩碼完成同樣的事情。在麻木中:

array_of_num = arr1[arr5.astype(bool)]
num_count = array_of_num.size

在熊貓中:

series_of_num = d['arr1'][d['arr5'].astype(bool)]
num_count = series_of_num.size

在這兩種情況下,您都可以替換.astype(bool)!= 0.


查看完整回答
反對(duì) 回復(fù) 2023-04-11
  • 1 回答
  • 0 關(guān)注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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