Python过滤器功能-如果列表中的单词以特定字符开头

时间:2018-08-20 04:19:37

标签: python list function

我的列表:

seq = ['soup','dog','salad','cat','great', 'salami']

我正在尝试创建一个仅包含起始字符为's'的单词的新列表。

我的尝试

def check_letter(input_list):
    if input_list[0].lower() == 's':
        return True
    else:
        return False

filtered_list = filter(check_letter, seq)
print(filtered_list)

我得到的输出是:

<filter object at 0x10e3f6f98>

我期望的是:

['soup', 'salad', 'salami']

谢谢!

2 个答案:

答案 0 :(得分:1)

它返回python3中的生成器对象,因此可以对其进行迭代或使用内置列表函数获取列表:

print(list(filtered_list))

Outpot:

['soup', 'salad', 'salami']

答案 1 :(得分:0)

您也可以使用列表推导。

In [1]: seq = ['soup','dog','salad','cat','great', 'salami']

In [2]: out = [x for x in seq if x.lower().startswith('s')]

In [3]: out
Out[3]: ['soup', 'salad', 'salami']