1. 程式人生 > 其它 >去除列表中所有的空值

去除列表中所有的空值

技術標籤:pythonpython列表

問題描述:

在對csv檔案進行讀取的過程中,由於每列的行數不一樣,導致按列讀出的列表中會有空值的存在,需將空值去掉

原始資料rssi:

for key in rssi:
    print(key,len(key))

#讀取結果:
['-15' '-15' '-10' ... '-10' '-14' '-9'] 1223
['-27' '-30' '-22' ... '' '' ''] 1223
['-22' '-27' '-20' ... '' '' ''] 1223
['-52' '-83' '-36' ... '' '' ''] 1223
['-109'
'-52' '-131' ... '' '' ''] 1223 ['-100' '-120' '-131' ... '' '' ''] 1223 ['-120' '-83' '-131' ... '' '' ''] 1223

常見的去除空值的方法是:
for key in arr:
    key = [x for x in key if x!='']

在使用普通迴圈的時候發現rssi列表中的值沒有變化:

for key in rssi:
    print(key,len(key))
    key = [x for x in key if x!='']
    print(len(key)
) print(len(rssi[1])) # 讀取結果: 0 1223 1 457 2 772 3 4 625 5 622 6 552 #為方便閱讀,此處人為添加了一行空行 1223

在迴圈時rssi[i]的空值被去除了,但迴圈之外其大小和賦值沒有改變


# 原因分析:

未知,待進一步學習

解決方案:

通過鍵值對rssi列表進行賦值

for i in range(len(rssi)):
    print(i)
    rssi[i] = [x for x in rssi[i] if x!='']
    print(len(rssi[i]))
print(len(rssi[1]))
# 讀取結果:
0 1223 1 457 2 772 3 4 625 5 622 6 552 457