給定一個字典,我想要節點 1 與銀行 1、節點 2 與銀行 2 的值的總和,依此類推。
data1 = {“節點 1”:256,“節點 2”:25,“銀行 1”:16,“銀行 2”:20}
預期產出:272 45
uj5u.com熱心網友回復:
我的作業假設你所有的價值觀看起來都一樣
您可以先拆分您的節點和銀行
nodes = {k:v for k,v in data1.items() if k.startswith('Node')}
banks = {k:v for k,v in data1.items() if k.startswith('Bank')}
然后只需對陣列的值求和
np.array(list(nodes.values())) np.array(list(banks.values()))
uj5u.com熱心網友回復:
如果您的所有字典將包含銀行和節點(并且沒有重復或缺失值),這很容易。
- 獲取對的數量
n(這是字典中元素數量的一半)。 - 使用帶有
n迭代的 for 回圈。 - 在每次迭代中,索引您需要的值并將它們相加。
這是一個將它們作為串列獲取的示例。
from json import dumps
data1 = {"Node 1": 256, "Node 2": 25, "Bank 1": 16, "Bank 2": 20}
sums = [0] * len(data1) // 2
for i, sum in enumerate(sums):
sums[i] = data1[f"Node {i 1}"] data1[f"Bank {i 1}"]
print(sums)
注意:為串列使用索引通常是非 Pythonic,但我認為這是對您問題的一個非常直接的答案。
uj5u.com熱心網友回復:
此代碼將匯總所有匹配的節點銀行對并忽略其余部分。
data1 = {"Node 1": 256,"Node 2":25, "Bank 1":16,"Bank 2":20}
keys = set([key if "Node" in key else "" for key in list(data1.keys())])
keys.remove("")
for key in keys:
if "Bank " str(key.split(" ")[1]) in data1.keys():
print(data1[key] data1["Bank " str(key.split(" ")[1])], end=" ")
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/434483.html
上一篇:MySQL explain結果Extra中"Using Index"與"Using where; Using index"區別探究
