我需要保存列表l到l2中以“S”开头的所有列表项
l= ['Santa Cruz','Santa fe','Sumbai','Delhi']
l1 = []
l1 = list(map(lambda x : x if x[0] == 'S',l))
print(l1)
以上操作导致语法错误
我试过了 Trial-I
l= ['Santa Cruz','Santa fe','Sumbai','Delhi']
l1 = []
l1 = list(map(lambda x : x if x[0] == 'S' else '',l))
l1
它返回[真,真,真,假]
我的预期产出是['Santa Cruz'、'Santa fe'、'Sumbai']
试用II
l= ['Santa Cruz','Santa fe','Sumbai','Delhi']
l1 = []
l1 = list(map(lambda x : x[0] == 'S',l))
print(l1)
试验II返回['Santa Cruz','Santa fe','Sumbai',']
我的预期结果不应该在结尾中有空白列表项。
如果没有lambda中的其他内容,则不能使用if。如果需要使用lambda,可以使用过滤器而不是映射:
如果要使用Map函数计算以“S”开头的单词,根据您的注释,可以执行以下操作:
这应该能奏效
编辑
所有字符串都有一个名为
startswith
的方法。使用字符串的第0个元素也可以达到目的对于列表理解,第
l1 = [name for name in l if name.startswith("S")]
行中发生的事情基本上与但写下来的方式更为慎重
相关问题 更多 >
编程相关推荐