简体   繁体   中英

Function of adding two lists in Python

whenever I run following code of adding two lists in python below mentioned error appears

    def add_lists(L1, L2):
        R = []
        for i in range(0, len(L1)):
            R.append(L1[i]+L2[i])
        return R

    L2 = [3, 3, 3, 3]
    L1 = [1, 2, 3, 4]
    add_lists(L1, L2)
    print("Resultant list of: ", str(L1), '& ' + str(L2), 'is', R)

this code yields NameError: name 'R' is not defined

The variable R is local to your function and so is not accessible to your print statement. (Generally, this is good. It makes the function self-contained and avoids dependencies on what global variables may or may not exist )

To print the result of the function, assign the result to an in-scope variable and use that.

def add_lists(L1, L2):
    R = []
    for i in range(0, len(L1)):
        R.append(L1[i]+L2[i])
    return R

L2 = [3, 3, 3, 3]
L1 = [1, 2, 3, 4]
res = add_lists(L1, L2)  # assigns the result of the function call to a variable we can access
print("Resultant list of: ", str(L1), '& ' + str(L2), 'is', res)

You defined R in a local scope "it looks like inside a function" while you are trying to use it outside of that scope in the last line.

Try moving the initialization of "R = []" to the outer scope.

its because R = [] is inside the function and print is outside the function... so try this:

R = []
def add_lists(L1, L2):
        
        for i in range(0, len(L1)):
            R.append(L1[i]+L2[i])
        return R

L2 = [3, 3, 3, 3]
L1 = [1, 2, 3, 4]
add_lists(L1, L2)
print("Resultant list of: ", str(L1), '& ' + str(L2), 'is', R)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM