Python 计算输入列表中以“S”开头的字数
我只想通过使用map函数和lambda函数来计算字数 这是我写的代码 input_list=[“圣何塞”、“旧金山”、“圣达菲”、“休斯顿”] lenlistmaplambda单词:如果单词[0]==S,则输入\u列表 然而,这是抛出这样一个错误Python 计算输入列表中以“S”开头的字数,python,list,map-function,Python,List,Map Function,我只想通过使用map函数和lambda函数来计算字数 这是我写的代码 input_list=[“圣何塞”、“旧金山”、“圣达菲”、“休斯顿”] lenlistmaplambda单词:如果单词[0]==S,则输入\u列表 然而,这是抛出这样一个错误 File "/code/source.py3", line 5 count = len(list(map(lambda word:word if word[0]=="S",input_list)))
File "/code/source.py3", line 5
count = len(list(map(lambda word:word if word[0]=="S",input_list)))
^
SyntaxError: invalid syntax
如果您坚持使用map,那么使用sum可能会奏效:
input_list=[“圣何塞”、“旧金山”、“圣达菲”、“休斯顿”]
count=summaplambda单词:单词[0]==S,输入\u列表
请注意,单词[0]==S的计算结果为True或False,与sum一起使用时,会分别转换为1或0。如果您坚持使用map,则使用sum可能有效:
input_list=[“圣何塞”、“旧金山”、“圣达菲”、“休斯顿”]
count=summaplambda单词:单词[0]==S,输入\u列表
请注意,单词[0]==S的计算结果为True或False,当与sum一起使用时,会分别转换为1或0。或者您可以这样做
summaplambda x:x.startswithS,输入列表,或者您可以这样做
summaplambda x:x.startswithS,input_list您是想使用筛选器吗?不,实际上问题不允许我使用筛选器您使用的lambda不正确。word if word[0]==S需要一个else来告诉它,如果条件不为真,将返回什么,但您似乎试图将其用作列表理解中的条件。但map不适用。它用于将一个iterable转换为另一个相同长度的iterable。而filter用于从输入iterable中选择一个子集。通常的方法是len[如果单词[0]==S,则在input_列表中逐个单词]。地图和lambda都没有用。你是想使用过滤器吗?不,实际上问题不允许我使用过滤器。你使用的lambda不正确。word if word[0]==S需要一个else来告诉它,如果条件不为真,将返回什么,但您似乎试图将其用作列表理解中的条件。但map不适用。它用于将一个iterable转换为另一个相同长度的iterable。而filter用于从输入iterable中选择一个子集。通常的方法是len[如果单词[0]==S,则在input_列表中逐个单词]。map和lambda都没有用。@python\u用户:好的,是的,这是一个改进。@python\u用户:好的,是的,这是一个改进。
len([x for x in input_list if x.startswith('S')])