首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果部分键包含在另一个键中,则字典中的值之和

如果部分键包含在另一个键中,则字典中的值之和
EN

Stack Overflow用户
提问于 2022-02-26 10:13:11
回答 3查看 266关注 0票数 0

给定一个字典,我想要节点1和银行1,节点2和银行2等等。

data1 ={“节点1":256,”节点2":25,“银行1":16,”银行2":20}

预期产出: 272 45

EN

回答 3

Stack Overflow用户

发布于 2022-02-26 10:37:09

此代码将所有匹配的Node-Bank对加在一起,而忽略其余的.

代码语言:javascript
复制
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=" ")
票数 0
EN

Stack Overflow用户

发布于 2022-02-26 10:41:02

我是在假设你所有的价值观都是这样的

您可以首先拆分节点和银行。

代码语言:javascript
复制
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')}

然后把数组的值和起来

代码语言:javascript
复制
np.array(list(nodes.values())) + np.array(list(banks.values()))
票数 0
EN

Stack Overflow用户

发布于 2022-02-26 10:45:34

如果您的字典将包含银行和节点(并且没有重复或缺少值),这是很容易的。

dictionary).

  • Use a for循环中包含n迭代的元素数的一半。在每次迭代中,

  • ,索引所需的值并将它们相加。

下面是一个将它们作为列表来获取的示例。

代码语言:javascript
复制
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)

注意:通常不会对列表使用索引,但我认为这是对您的问题的一个非常简单的回答。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71275776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档