从字典列表中删除字典以避免除以零错误
Removing a dictionary from a list of dictionaries to avoid a divide by zero error
我有一个字典列表,例如:
[{'askPrice': '0.06671700',
'askQty': '20.50280000',
'bidPrice': '0.06671600',
'bidQty': '11.01110000',
'symbol': 'ETHBTC'},
{'askPrice': '0.00237300',
'askQty': '34.35000000',
'bidPrice': '0.00237200',
'bidQty': '33.33300000',
'symbol': 'LTCBTC'},
{'askPrice': '0.00000000',
'askQty': '0.00000000',
'bidPrice': '0.00000000',
'bidQty': '0.00000000',
'symbol': 'BCCBTC'}]
列表中 'symbol':'BCCBTC'
的第三个词典有 'askPrice': '0.00000000'
所以当我尝试将 askPrice 除以零时,我得到除以零错误。如何删除整个字典 -
{'askPrice': '0.00000000',
'askQty': '0.00000000',
'bidPrice': '0.00000000',
'bidQty': '0.00000000',
'symbol': 'BCCBTC'}
来自词典列表?或者更好的方法是如何从词典列表中删除所有具有 askPrice
或 bidPric
e 的 0
的词典,而不管 symbol
是什么。
您可以使用列表理解来过滤数据,检查 float
转换后的 bidPrice
或 askPrice
值是否不是 0:
[d for d in data if float(d['askPrice']) != 0 and float(d['bidPrice']) != 0]
输出:
[
{'symbol': 'ETHBTC', 'bidPrice': '0.06671600', 'bidQty': '11.01110000', 'askPrice': '0.06671700', 'askQty': '20.50280000'},
{'symbol': 'LTCBTC', 'bidPrice': '0.00237200', 'bidQty': '33.33300000', 'askPrice': '0.00237300', 'askQty': '34.35000000'}
]
我有一个字典列表,例如:
[{'askPrice': '0.06671700',
'askQty': '20.50280000',
'bidPrice': '0.06671600',
'bidQty': '11.01110000',
'symbol': 'ETHBTC'},
{'askPrice': '0.00237300',
'askQty': '34.35000000',
'bidPrice': '0.00237200',
'bidQty': '33.33300000',
'symbol': 'LTCBTC'},
{'askPrice': '0.00000000',
'askQty': '0.00000000',
'bidPrice': '0.00000000',
'bidQty': '0.00000000',
'symbol': 'BCCBTC'}]
列表中 'symbol':'BCCBTC'
的第三个词典有 'askPrice': '0.00000000'
所以当我尝试将 askPrice 除以零时,我得到除以零错误。如何删除整个字典 -
{'askPrice': '0.00000000',
'askQty': '0.00000000',
'bidPrice': '0.00000000',
'bidQty': '0.00000000',
'symbol': 'BCCBTC'}
来自词典列表?或者更好的方法是如何从词典列表中删除所有具有 askPrice
或 bidPric
e 的 0
的词典,而不管 symbol
是什么。
您可以使用列表理解来过滤数据,检查 float
转换后的 bidPrice
或 askPrice
值是否不是 0:
[d for d in data if float(d['askPrice']) != 0 and float(d['bidPrice']) != 0]
输出:
[
{'symbol': 'ETHBTC', 'bidPrice': '0.06671600', 'bidQty': '11.01110000', 'askPrice': '0.06671700', 'askQty': '20.50280000'},
{'symbol': 'LTCBTC', 'bidPrice': '0.00237200', 'bidQty': '33.33300000', 'askPrice': '0.00237300', 'askQty': '34.35000000'}
]