我有一个arduino给我发来的串行数据被转换成字典。你知道吗
但是,并非所有条目都有一个值,因为数据是随机发送的。你知道吗
在将字典数据发送到CSV文件之前,我想删除dict中的空值或0值
传入数据如下所示:(仅值)
['','7','','49','173','158']
我想让它变成
['7'、'49'、'173'、'158]。你知道吗
我当前使用的脚本:
import serial
import time
def delete_Blanks(arrayName):
tempArray = array.copy()
for key, value in sorted(tempArray.items()):
if value == "":
del tempArray[key]
else:
print "Value is not nil"
return tempArray
array = {}
ser = serial.Serial('COM2', 9600, timeout=1)
key = 0
while 1:
length = len(array)
if len(array) in range(0,5):
array.update({key:ser.read(1000)})
key = key + 1
print "key is ", key
print array.values()
length = len(array)
else:
newArray = delete_Blanks(array)
print newArray.items()
break
将输出: ['7'、'49'、'173'、'158']
如果您有长的数据数组,最好使用迭代器来避免内存泄漏。如果你使用短列表-列表理解是很好的
如果只是一个简单的列表,你可以这样做
在创建字典之前,可以过滤两个列表,一个是包含键的列表,另一个是包含值的列表。假设两个列表的长度相同,那么
创建新列表
你可以用字典来理解。这将从字典
d
中删除所有假值:相关问题 更多 >
编程相关推荐