如何从变量列表python中查找字符串

时间:2014-08-25 01:59:21

标签: python function loops find

我是Stackoverflow的新手,也是编程的新手,所以我要问的问题可能非常基本。

我想从变量列表中知道如何找到变量类型。

例如,我有一个功能:

def list_of_variables(w,x,y,z):

现在我可以使用 type()功能。但我想知道如何使用 type()函数从 list_of_variables 中提取所有字符串。

我应该使用循环函数来遍历每个变量吗?但在我看来,这将有点混乱。

是否有更好,更清洁的方法来解决问题。

感谢大家的时间!

2 个答案:

答案 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)]