Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果两个不同函数的键匹配,我将如何使用它们的值?_Python_Python 2.7 - Fatal编程技术网

Python 如果两个不同函数的键匹配,我将如何使用它们的值?

Python 如果两个不同函数的键匹配,我将如何使用它们的值?,python,python-2.7,Python,Python 2.7,我在尝试使用每个函数的值并将它们组合在一起时遇到困难。我想在不同的函数中使用每个函数的局部变量,只要它们的主(类别)相互匹配,我就会将每个值进行分割。我目前有: counters = {} def participated(): for line in reader: if int(line[6]) > 0: primary = line[7].strip('[]') counters.setdefault(prim

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

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)
如何从每个函数中提取
counter.item()
中的
v
,并使用它彼此分割,例如:

success_percentage = v from participated() / v from generalNumber ()
在哪里


计数器
dict设置为每个函数的本地,并将
返回
函数中的每个
计数器

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)
中使用了
get
和默认的
1
,因此如果
primary
存在于
counter_p
中,但不存在于
counter_g
中,则代码不会中断,但是以静默方式返回
1

而不是只打印
返回计数器的值
,并使用这些字典在循环中执行其他操作。很抱歉,您能否详细介绍如何使用返回计数器并使用它们?
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]