我想創建一個函式,從Python中的鍵值對串列中的兩個鍵給定的間隔中洗掉一些值。我已經嘗試了很多東西,我已經用谷歌搜索了很多。這是鍵值對的串列:
[{"day": 1, "sum": 25, "type": in}, {"day": 2, "sum": 55, "type": in}, {"day": 3, "sum": 154, "type": out}, {"day": 4, "sum": 99, "type": in}]。我想洗掉具有"day"介于1 and 3. 這是我的這個函式的 UI 代碼。我只需要進行delete_transaction_interval(all_transactions, dayStart, dayEnd)作業。有人可以幫我嗎?
def delete_transaction_interval(all_transactions,dayStart,dayEnd):
for i in range(0,len(all_transactions)):
if all_transactions[i]["day"]==dayStart:
for j in range(i 1, len(all_transactions)):
if all_transactions[j]["day"]==dayEnd:
del all_transactions[i:j]
def ui_delete_transaction_interval(all_transactions):
dayStart=int(input("Start day= "))
dayEnd=int(input("End day= "))
delete_transaction_interval(all_transactions, dayStart, dayEnd)
print_all_transactions(all_transactions)
uj5u.com熱心網友回復:
在列舉串列或任何其他可變物件時,您不應嘗試對其進行修改。最佳實踐是創建一個新物件——在這種情況下是一個串列。
調整輸入資料以使其有效 Python。
_in = 0
_out = 0
_list = [{"day": 1, "sum": 25, "type": _in}, {"day": 2, "sum": 55, "type": _in}, {"day": 3, "sum": 154, "type": _out}, {"day": 4, "sum": 99, "type": _in}]
new_list = [d for d in _list if not 1 <= d.get('day', 2) <= 3]
print(new_list)
輸出:
[{'day': 4, 'sum': 99, 'type': 0}]
uj5u.com熱心網友回復:
你需要這樣的東西嗎?
l = [{"day": 1, "sum": 25, "type": 'in'}, {"day": 2, "sum": 55, "type": 'in'}, {"day": 3, "sum": 154, "type": 'out'}, {"day": 4, "sum": 99, "type": 'in'}]
def delete_transaction_interval(all_transactions,dayStart,dayEnd):
return [d for e,d in enumerate(all_transactions) if not d['day'] in range(dayStart,dayEnd 1)]
print(delete_transaction_interval(l,1,3)) #[{'day': 4, 'sum': 99, 'type': 'in'}]
uj5u.com熱心網友回復:
您可以嘗試以下解決方案。我們創建了一個串列理解,它只選擇滿足條件 1 <= "day" <=3 的鍵/值對:
d1 = [{"day": 1, "sum": 25, "type": "in"}, {"day": 2, "sum": 55, "type": "in"}, {"day": 3, "sum": 154, "type": "out"}, {"day": 4, "sum": 99, "type": "in"}]
d2 = [i for i in d1 if not 1 <= i["day"] <=3]
print(d2)
輸出:
[{'day': 4, 'sum': 99, 'type': 'in'}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/521232.html
標籤:Python列表字典
上一篇:datetime.date.today()總是回傳相同的值
下一篇:連接陣列的各個元素
