是否可以分配一个字符串,但也可以在一行中从返回的元组添加到整数?

时间:2017-10-26 21:03:43

标签: python function return tuples

例如,假设我有一些永远不会留下循环的字符串,而是一个全局需要的数字计数器。而不是......

outside_int = 0

def string_Grabber(stuff):

    my_string = ''
    my_number = 0

    for i in range(who_cares):
        #stuff that concatenates my_string
        if this_happens():
            my_number += 1

    return my_string, my_number

for things in another_loop:

    loop_string = string_Grabber(things)[0]
    outside_int += string_Grabber(things)[1]

...有没有办法在一行中完成它,所以我不必两次调用(可能很昂贵的)函数?像:

loop_string, outside_int = stringGrabber(things)(0, += 1)

2 个答案:

答案 0 :(得分:4)

没有办法在一行中完成。 你可以在函数内完成:

def string_Grabber(stuff):

    my_string = ''
    my_number = 0

    for i in range(who_cares):
        #stuff that concatenates my_string
        if this_happens():
            my_number += 1

    return my_string, my_number + outside_int

答案 1 :(得分:1)

我有一个快速解决方案,您可以添加一个临时变量来捕获整数,然后将其添加到全局值,如下所示。

outside_int = 0

def string_Grabber(stuff):

   return 'string',1

for things in range(2):
  strring, tmp = string_Grabber('sample')
  outside_int +=tmp
  print(outside_int)

返回输出

1
2