亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

可以在第二個列表中使用帶有條件的列表理解嗎?

可以在第二個列表中使用帶有條件的列表理解嗎?

慕蓋茨4494581 2023-06-06 10:38:50
這是我問過的關于根據條件按元素填充新列表的上一個問題的后續問題。我現在想知道我是否可以創建第二個新列表,該列表仍然有條件地填充在第一個列表理解中。最初我有:?old_list1 = np.reshape(old_data, (49210, 1)) #Reshape into 1D array?new_list1 = [None] #Create empty list to be filled?max_value = np.nanmax(old_list1)?threshold = 0.75 * max_value #Create threshold to be used as condition for new list....然后,根據我對上一個問題的回答,我可以根據threshold以下內容創建一個新列表:new_list1 = [element[0] for element in old_list1 if element[0] > threshold]我有另一個列表 ,old_list2其長度與 相同old_list1。我可以使用仍然以滿足條件new_list2的匹配元素為條件的列表理解來創建嗎?old_list1threshold也就是說,是這樣的:j = 0for i in range(len(old_list1)):? ? if old_list1[i] > threshold:? ? ? ? ?new_list1[j] = old_list[i]? ? ? ? ?new_list2[j] = old_list2[i]? ? ? ? ?j += 1?...可能與列表理解?一如既往地謝謝你!
查看完整描述

1 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

是的你可以。您可以結合使用列表理解來zip關聯項目?;蛘?,如果您已經擁有數組中的數據numpy,只需使用條件索引:


import numpy as np


data1 = np.array([10, 1, 9, 8])

threshold = 0.75 * np.nanmax(data1)  # 7.5 in this example


data2 = np.array([500, 200, 300, 100])


# using list comprehension and zip

new_data = [t[1] for t in zip(data1, data2) if t[0] > threshold]

print(new_data)   # [500, 300, 100]


# using numpy's conditional indexing...

new_data2 = data2[data1 > threshold]

print(new_data2)  # [500 300 100]


查看完整回答
反對 回復 2023-06-06
  • 1 回答
  • 0 關注
  • 89 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號