我将如何使用两个不同函数中键匹配的值?

2024-10-03 23:24:04 发布

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

我在尝试使用每个函数的值并将它们组合在一起时遇到困难。我有来自每个函数的局部变量,我想在不同的函数中使用它们,只要它们的主要(类别)相互匹配,我就会将每个值除以。我目前有:

counters = {}

def participated():
    for line in reader:
        if int(line[6]) > 0:
            primary = line[7].strip('[]')
            counters.setdefault(primary, 0)
            counters[primary] += 1

    for k, v in counters.items():
        print(k, v)

def generalNumber():
    for line in reader:
        primary = line[7].strip('[]')
        counters.setdefault(primary, 0)
        counters[primary] += 1

    for k, v in counters.items():
        print(k, v)

我如何从每个函数中取vcounter.item(),并使用它来划分彼此,例如:

success_percentage = v from participated() / v from generalNumber ()

在哪里

participated().primary = generalNumber().primary 

Tags: 函数infromfordeflineitemsreader
1条回答
网友
1楼 · 发布于 2024-10-03 23:24:04

counterdict设置为每个函数的本地,并将return设置为函数中的每个counter

def participated():
    counters = {}
    for line in reader:
        if int(line[6]) > 0:
            primary = line[7].strip('[]')
            counters.setdefault(primary, 0)
            counters[primary] += 1

    for k, v in counters.items():
        print(k, v)
    return counter

def generalNumber():
    counters = {}
    for line in reader:
        primary = line[7].strip('[]')
        counters.setdefault(primary, 0)
        counters[primary] += 1

    for k, v in counters.items():
        print(k, v)
    return counter

然后调用函数并使用返回的字典执行除法,如下所示:

counter_p = participated()
counter_g = generalNumber()

# here you have a list of success percentages
success_percentage = [counter_p.get(primary)/counter_g.get(primary, 1) for primary in counter_p]

我在counter_g.get(primary, 1)中使用了带有默认1get,因此如果primary存在于counter_p中,而不存在于counter_g,代码不会中断,而是默默返回1。你知道吗

相关问题 更多 >