【问题标题】:Python: why does my function return an empty list?Python:为什么我的函数返回一个空列表?
【发布时间】:2019-07-30 06:47:19
【问题描述】:

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

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

【问题讨论】:

  • 在您的函数中,您正在迭代 string_list,即您刚刚创建的空列表。
  • 是的,我刚刚注意到了。现在我觉得有点愚蠢:P

标签: python for-loop return isinstance


【解决方案1】:

变化不大。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-29
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 2021-08-17
    相关资源
    最近更新 更多