在python等价符号的非插入数组上迭代

2024-09-24 22:23:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在用python从一个ruby模块编写脚本。我在ruby到python的翻译方面遇到了问题

红宝石:

plan_metrics[test_name]={ passed_count: 0, blocked_count: 0, untested_count: 0, failed_count: 0, reviewed_count: 0, test_harness_issue_count: 0, bug_failure_count: 0, defect_list: [] }
entry['runs'].each do |run|
      metric_hash = plan_metrics[test_name]
      %i[passed_count blocked_count untested_count failed_count].each do |key|
        metric_hash[key] = metric_hash[key] + run[key.to_s]
      end

在这段代码中,entry['runs']保存passed_countblocked_countuntested_countfailed_count的实际值,但在多个字典中。这应该是对它们进行迭代,将所有值相加,并将它们放入一个符号中(即passed_count),该符号保存在metric_hash

现在,当我尝试翻译成python时,我并没有使用符号,而是这样做

我的Python翻译:

plan_metrics[test_name]={ "passed_count": 0, "blocked_count": 0, "untested_count": 0, "failed_count": 0, "reviewed_count": 0, "test_harness_issue_count": 0, "bug_failure_count": 0, "defect_list": [] }
for run in entry["runs"]:
       metric_hash = plan_metrics[test_name]
       for key in [metric_hash["passed_count"], metric_hash["blocked_count"], metric_hash["untested_count"], metric_hash["failed_count"]:
             metric_hash[key] = metric_hash[key] + run[str(key)]

但是为了这个,我在网上得到了KeyError: 0metric_hash[key] = metric_hash[key] + run[str(key)]

会吗

for key in [metric_hash["passed_count"], metric_hash["blocked_count"], metric_hash["untested_count"], metric_hash["failed_count"]:

相当于

%i[passed_count blocked_count untested_count failed_count].each do |key|

如果是这样,是什么导致了KeyError:0

如果不是的话,我怎样才能在python中完成ruby示例所做的,在符号数组上进行交互呢

如果您需要有关数据的更多信息,请告诉我要做什么print()谢谢


Tags: keyrunnametestcount符号hashmetric
1条回答
网友
1楼 · 发布于 2024-09-24 22:23:20

在python中是这样的

   for key in [metric_hash["passed_count"], metric_hash["blocked_count"], metric_hash["untested_count"], metric_hash["failed_count"]:

这意味着key从列表[0, 0, 0, 0]中获取值。你明白为什么吗

相关问题 更多 >