Python:为什么我的函数 return 是一个空列表?

Python: why does my function return an empty list?

我正在尝试编写一个 return 列表中所有字符串的函数。

使用 isinstance() 方法和 for 循环,我将字符串附加到一个新列表,然后 return 该列表。但是,列表是空的。

有趣的是,当我在函数外部使用相同的代码时,正确的项目是 returned。但是在一个函数内部,什么都没有 returned。

函数内部:

mylist = [1,2,3,"xxx","bob"]

def check_string(mylist): 
    string_list = []

    for item in string_list: 
        if isinstance(item,str):
            string_list.append(item)

    return string_list

check_string(mylist)

The output is an empty list!!! 

Inside a function: 

mylist = [1,2,3,"xxx","bob"]

string_list = []

for item in mylist: 
    if isinstance(item,str): 
        string_list.append(item)

print(string_list)

我得到 ['xxx', 'bob']

print 语句 return 是正确的值,但是函数 return 什么都没有。怎么回事???

变化不大。

mylist = [1,2,3,"xxx","bob"] 
def check_string(mylist): 
    string_list = [] 
    for item in mylist: 
        if isinstance(item,str):
            string_list.append(item) 
    return string_list

如果这是你想要的,请告诉我。