我有一個附加串列的功能,如下所示:
def append_func(element):
if xxxx:
new_list.append(element)
else:
[]
我有另一個使用的功能append_func():
def second_func(item):
for i in item:
append_func(i)
如果我運行:
new_list = []
second _func(item)
new_list
這將回傳我想要的串列,但我不能這樣做,new_list = second _func(item)因為在這種情況下new_list將是一個None.
我知道這append()將回傳一個None型別,但我想回傳附加串列,以便我可以在其他地方使用result = second _func(xxx),我錯過了什么?謝謝。
uj5u.com熱心網友回復:
根據您在評論中所做的澄清,您可能想要這樣的東西。(我改變了你的一些占位符,所以我們有運行代碼和一個可重現的例子)
該串列是由創建的,second_func因此我們擺脫了全域串列。
def append_func(data, element):
if 2 < element < 7:
data.append(element ** 2)
def second_func(items):
new_list = []
for i in items:
append_func(new_list, i)
return new_list
items = list(range(10))
result = second_func(items)
print(result)
結果是[9, 16, 25, 36]。
uj5u.com熱心網友回復:
簡單地告訴python回傳什么:
def append_func(element):
if xxxx:
new_list.append(element)
else:
[]
return new_list # here, return whatever you want to return
如果函式中沒有“return”陳述句,則函式回傳None
uj5u.com熱心網友回復:
new_list您在呼叫之前定義的second_func是一個全域變數。每次呼叫second_func()它都會將引數附加到全域變數。但new_list不限于任一函式的命名空間,因此將其設定為回傳值是沒有意義的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530220.html
下一篇:如何根據給定的值串列過濾字典值?
