【发布时间】:2021-05-14 18:39:51
【问题描述】:
我正在尝试查找以字符“s”开头的单词。我有一个字符串列表(seq)要检查。
seq = ['soup','dog','salad','cat','great']
sseq = " ".join(seq)
filtered = lambda x: True if sseq.startswith('s') else False
filtered_list = filter(filtered, seq)
print('Words are:')
for a in filtered_list:
print(a)
输出是:
Words are:
soup
dog
salad
cat
great
我在哪里看到整个列表。如何使用 lambda 和 filter() 方法返回以 "s" 开头的单词?谢谢
【问题讨论】:
-
为什么不使用简单的列表推导?毕竟,Python 就是简单地做事。 :-)
-
[word for word in seq if word.lower().startswith('s')] -
为什么
filtered忽略它的论点? -
你为什么在函数中使用
sseq,而不是x,参数?你为什么要创建sseq? -
另外,顺便说一句,不要将 lambda 表达式分配给名称。如果您要这样做,只需使用完整的函数定义
标签: python python-3.x list lambda filter