我有一个字典列表,想根据某些条件提取特定的数据。如果货币显示为美元且大于0,我只想提取货币(作为int / float)。
这是我所做的事情。
这个列表是可以使用的,但我的问题实际上是这样的 - 是否有更好的方法在列表推导式中使用变量,使其看起来像这样:
curr = [{'currency': '6000.0000,EUR', 'name': 'Bob'},
{'currency': '0.0000,USD', 'name': 'Sara'},
{'currency': '2500.0000,USD', 'name': 'Kenny'},
{'currency': '0.0000,CND', 'name': 'Debbie'},
{'currency': '2800.0000,USD', 'name': 'Michael'},
{'currency': '1800.0000,CND', 'name': 'Aaron'},
{'currency': '2500.0000,EUR', 'name': 'Peter'}]
结果:
usd_curr = [2500.0000, 2800.0000]
这是我所做的事情。
usd_curr = [line for line in data if ',USD' in line['currency']]
usd_curr = [float(elem['currency'].split(',')[0]) for elem in curr if float(elem['currency'].split(',')[0]) > 0]
这个列表是可以使用的,但我的问题实际上是这样的 - 是否有更好的方法在列表推导式中使用变量,使其看起来像这样:
usd_curr = [var = float(elem['currency'].split(',')[0]) for elem in curr if var > 0]
usd_curr
зїЩеЗЇжЙАжЬЙдїЈеАЉ>0
зЪДиіІеЄБгАВusd_curr
==>[6000.0, 2500.0, 2800.0, 1800.0, 2500.0]
гАВ - Praveen