去除列表中所有的空值
阿新 • • 發佈:2020-12-10
問題描述:
在對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