Home > OS >  Genereating new list inside local scope and assigning it to a variable in global scope
Genereating new list inside local scope and assigning it to a variable in global scope

Time:04-30

Good day, guys. Is it possible to modify list inside function definition and assign new list to variable in global scope. For example, I dont like figure 6:

list = [1,2,3,4,5,6,7,8,9]
def modification(data):
    new_sexy_list = []
    for index in data:
        if index == 6:
            del index
    return **???????????????**

output
modification(list)
list = [1,2,3,4,5,7,8,9]

How could return statement look like?

CodePudding user response:

You can just mutate the list inside the function:

li = [1,2,3,4,5,6,7,8,9]

def modification(data):
    data.pop(6)  # remove element at index 6

modification(li) 
print(li)  # will print [1, 2, 3, 4, 5, 6, 8, 9]

Note that there's no need to return anything.

Another possibility is to build a new list inside the function and return it.

If you don't understand how this works, I highly recommend reading https://nedbatchelder.com/text/names.html. Python names (references) and values work differently from many other languages. The article explains it very well.

  • Related