我撰寫了一個函式,用于收集串列中出現的“NULL”和“NaN”字串的所有索引位置,并將它們附加到另一個名為 num 的串列中。我現在正在嘗試撰寫一個函式,該函式遍歷包含字串 'NULL' 和 'NaN' 的串列,并使用 num 串列中的索引位置來洗掉它們。
到目前為止,我已經對這些進行了編碼,但沒有成功。
l = ['NULL', 32, 43, 'NaN', 45, 89, 11, 'NULL']
num = [0, 3, 7]
def rowRemover():
for i in num:
l.pop(num[i])
rowRemover()
print(l)
def rowRemover():
i = 0
while i < len(num):
l.pop(num[i])
i = 1
rowRemover()
print(l)
我會很感激你的幫助。謝謝
uj5u.com熱心網友回復:
不是從串列中彈出元素,而是考慮串列理解。由于我們將檢查索引是否匹配并檢查集合中是否存在專案比對串列執行相同操作要便宜,因此轉換num為num_set. 然后enumerate函式將幫助您確定要排除的元素:
l = ['NULL', 32, 43, 'NaN', 45, 89, 11, 'NULL']
num_set = set([0, 3, 7])
new_l = [x for i, x in enumerate(l) if i not in num_set]
輸出:
[32, 43, 45, 89, 11]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/388328.html
