Python:为什么我的函数返回一个空列表?

时间:2019-07-30 06:47:19

标签: python for-loop return isinstance

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

使用isinstance()方法和for循环,将字符串附加到新列表中,然后返回该列表。但是,该列表为空。

有趣的是,当我在函数之外使用相同的代码时,将返回正确的项目。但是在函数内部,什么也不会返回。

在函数内部:

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语句返回正确的值,但函数不返回任何值。怎么了?

1 个答案:

答案 0 :(得分:0)

变化不大。

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

请告诉我您是否要这样做。