【发布时间】: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