忽略 None 个值并跳到下一个值?
Ignore None values and skip to next value?
此词典列表会定期更改。
search_option = [{'strike_price': '1', 'bid_price': '0.25', 'implied_volatility': '0.94' },
{'strike_price': '3.5', 'bid_price': '0.20', 'implied_volatility': '0.88'},
{'strike_price': '2', 'bid_price': '0.05', 'implied_volatility': None},
{'strike_price': '3.5', 'bid_price': '0.31', 'implied_volatility': '0.25'}]
这里的代码搜索隐含波动率低于 0.9 的期权。
for option_list in search_option:
if option_list is not None:
option_list = ([i for i in search_option if float(i["implied_volatility"]) < 0.90])
print(option_list)
我偶尔会遇到这个错误:
float() 参数必须是字符串或数字,而不是 'NoneType'
我的问题是,如何保持搜索不变 (implied_volatility < 0.9) 而同时忽略 None 值?
换句话说,如果它是 'None' 则跳到下一个可用选项。
试试这个:
option_list = ([i for i in search_option if i["implied_volatility"] and float(i["implied_volatility"]) < 0.90])
您也不必使用 for 循环遍历 search_option
,您可以使用上面的代码替换它。
for i in search_option:
if i['implied_volatility'] is not None and float(i['implied_volatility']) < 0.9 :
print(i)
这是你想要的吗?
在条件之前添加 if i["implied_volatility"] is not None
。你的整个列表理解因此变成:
[i for i in search_option if i["implied_volatility"] is not None if float(i["implied_volatility"]) < 0.90]
这是等同于嵌套条件的列表理解。
给你:
option_list = [so for so in search_option if float(so['implied_volatility'] or '0.95') < 0.90]
print(option_list)
输出
[{'strike_price': '3.5', 'bid_price': '0.20', 'implied_volatility': '0.88'}, {'strike_price': '3.5', 'bid_price': '0.31', 'implied_volatility': '0.25'}]
此词典列表会定期更改。
search_option = [{'strike_price': '1', 'bid_price': '0.25', 'implied_volatility': '0.94' },
{'strike_price': '3.5', 'bid_price': '0.20', 'implied_volatility': '0.88'},
{'strike_price': '2', 'bid_price': '0.05', 'implied_volatility': None},
{'strike_price': '3.5', 'bid_price': '0.31', 'implied_volatility': '0.25'}]
这里的代码搜索隐含波动率低于 0.9 的期权。
for option_list in search_option:
if option_list is not None:
option_list = ([i for i in search_option if float(i["implied_volatility"]) < 0.90])
print(option_list)
我偶尔会遇到这个错误:
float() 参数必须是字符串或数字,而不是 'NoneType'
我的问题是,如何保持搜索不变 (implied_volatility < 0.9) 而同时忽略 None 值? 换句话说,如果它是 'None' 则跳到下一个可用选项。
试试这个:
option_list = ([i for i in search_option if i["implied_volatility"] and float(i["implied_volatility"]) < 0.90])
您也不必使用 for 循环遍历 search_option
,您可以使用上面的代码替换它。
for i in search_option:
if i['implied_volatility'] is not None and float(i['implied_volatility']) < 0.9 :
print(i)
这是你想要的吗?
在条件之前添加 if i["implied_volatility"] is not None
。你的整个列表理解因此变成:
[i for i in search_option if i["implied_volatility"] is not None if float(i["implied_volatility"]) < 0.90]
这是等同于嵌套条件的列表理解。
给你:
option_list = [so for so in search_option if float(so['implied_volatility'] or '0.95') < 0.90]
print(option_list)
输出
[{'strike_price': '3.5', 'bid_price': '0.20', 'implied_volatility': '0.88'}, {'strike_price': '3.5', 'bid_price': '0.31', 'implied_volatility': '0.25'}]