📜  仅打印列表 python 中的字符串(1)

📅  最后修改于: 2023-12-03 15:06:28.954000             🧑  作者: Mango

仅打印列表 Python 中的字符串

在处理 Python 列表时,我们可能希望仅打印其中的字符串并忽略其他的类型,比如整数或布尔值。本文将介绍如何做到这一点。

使用列表推导式过滤字符串元素

一种简单的方法是使用列表推导式,通过判断每个元素的类型来过滤出其中的字符串元素。下面是一个例子:

lst = [1, 'foo', 'bar', True, 'baz', 42]
str_lst = [x for x in lst if isinstance(x, str)]
print(str_lst)

输出:

['foo', 'bar', 'baz']

上面的代码中,我们使用了 isinstance() 函数来判断每个元素是否是字符串类型。如果是,就将其添加到一个新列表 str_lst 中。最后,我们打印出了这个新列表。

使用 filter() 函数过滤字符串元素

除了列表推导式,我们还可以使用 Python 内置的 filter() 函数来过滤出字符串元素。类似于上面的方法,我们需要提供一个函数来判断每个元素是否是字符串类型。下面是一个例子:

lst = [1, 'foo', 'bar', True, 'baz', 42]
str_lst = list(filter(lambda x: isinstance(x, str), lst))
print(str_lst)

输出:

['foo', 'bar', 'baz']

上面的代码中,我们使用了 lambda 表达式来定义一个判断函数。这个函数接受一个参数 x,判断它是否是字符串类型。然后,我们将这个函数传递给 filter() 函数来得到一个可迭代的对象。最后,我们使用 list() 将其转换为一个列表,并打印出来。

使用 for 循环打印字符串元素

除了过滤出字符串元素,我们还可以通过 for 循环来遍历整个列表并打印出其中的字符串。这种方法简单直接,适用于列表中的元素类型比较少时。下面是一个例子:

lst = [1, 'foo', 'bar', True, 'baz', 42]
for x in lst:
    if isinstance(x, str):
        print(x)

输出:

foo
bar
baz

上面的代码中,我们使用了 if 语句来判断每个元素是否是字符串类型。如果是,就将其打印出来。这样,我们就可以只打印出列表中的字符串元素了。

总结

本文介绍了如何在 Python 中仅打印列表中的字符串元素。我们展示了三种方法:使用列表推导式、使用 filter() 函数和使用 for 循环。根据实际情况选择不同的方法来处理列表中的字符串元素。