[英]How to filter a specific, non-constant float out of a list
我是 python 的新手,我一直在嘗試編寫一個程序來跟蹤我的 Steam 庫存的總價值。 我已經能夠檢索我所有的皮膚和價格,但問題是從 steam_community_market.market 模塊輸出中分離出價格輸出,這是一個包含大量不必要信息的列表。 我一直無法找到如何僅從列表中過濾特定字符串。 我試圖過濾的列表格式的一個例子是:
skins_prices = [
{'Mann Co. Supply Crate Key': {
'success': True,
'lowest_price': '$2.50',
'volume': '6,489',
'median_price': '$2.45'},
'AK-47 | Redline (Field-Tested)': {
'success': True,
'lowest_price': '$15.00',
'volume': '749',
'median_price': '$14.78'}
}
]
我還沒有涉及將成本加在一起的部分,因為首先我需要為每個項目隔離“最低價格”,我怎么做才能使用該數字來計算總價值/成本(意味着它需要是一個浮點數)? 如果您需要更多詳細信息或有任何疑問,請告訴我。 任何幫助,提前致謝。
我認為你需要:
low_prices = []
# as your list has only 1 component we are using `[0]` and iterating over it
for _, v in skins_prices[0].items():
low_prices.append(float(v["lowest_price"][1:]))
print(low_prices)
輸出:
[2.5, 15.0]
解釋
v["lowest_price"][1:]
我們使用索引來忽略 str 中的第一個字符,即$
所以現在值將是2.5
或15
。
在此我們應用float
將str
轉換為float
並將其附加到新列表中,即low_prices
這是注釋中確定的嵌套字典的問題。 這是一個示例代碼以幫助您:
key = 'lowest_price'
lowest_prices = {}
for k, v in skins_prices[0].items():
for k1, v1 in v.items():
if k1 == key:
lowest_prices[k] = float(v1[1:])
print(lowest_prices)
輸出(我已經刪除了 $ 並轉換為浮點數):
{'Mann Co. Supply Crate Key': 2.5, 'AK-47 | Redline (Field-Tested)': 15.0}
現在您可以使用新字典來操作這些值。 例如獲取總和如下:
>> sum(list(lowest_prices.values()))
>> 17.5
哈。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.