我是Stackoverflow的新手,也是编程的新手,所以我要问的问题可能非常基本。
我想从变量列表中知道如何找到变量类型。
例如,我有一个功能:
def list_of_variables(w,x,y,z):
现在我可以使用 type()功能。但我想知道如何使用 type()函数从 list_of_variables 中提取所有字符串。
我应该使用循环函数来遍历每个变量吗?但在我看来,这将有点混乱。
是否有更好,更清洁的方法来解决问题。
感谢大家的时间!
答案 0 :(得分:2)
您可以将列表表达式与isinstance
一起使用。
短路
stringlist = [item for item in (w,x,y,z) if isinstance(item, str)]
长路
stringlist = []
for item in (w,x,y,z):
if isinstance(item str):
stringlist.append(item)
答案 1 :(得分:2)
你可以使用列表推导来完成它而不会让它看起来很糟糕,但在幕后它只是编写for循环的一种奇特方式(实际上明确地使用了一个)。
def list_of_variables(w,x,y,z):
"""Returns a list of all the variables which are strings"""
return [var for var in [w,x,y,z] if isinstance(var,str)]
这相当于:
def list_of_variables(w,x,y,z):
retlist = []
for var in [w,x,y,z]:
if isinstance(var,str):
retlist.append(var)
return retlist
我们实际上可以通过使用* args来简化它,它将捕获传递给函数的所有参数,无论是1还是100,000!
def list_of_variables(*args):
"""Returns a list featuring all the arguments which are strings"""
return [var for var in args if isinstance (var,str)]