我需要保存列表 l 到 l2 中所有以 'S' 开头的列表项
l= ['Santa Cruz','Santa fe','Sumbai','Delhi']
l1 = []
l1 = list(map(lambda x : x if x[0] == 'S',l))
print(l1)
以上导致语法错误。
我试过了 试验-I
l= ['Santa Cruz','Santa fe','Sumbai','Delhi']
l1 = []
l1 = list(map(lambda x : x if x[0] == 'S' else '',l))
l1
它返回 [True, True, True, False]
我的预期输出是 ['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)
Trial-II 返回 ['Santa Cruz','Santa fe','Sumbai', '']
我预期的结果不应该有结尾的空白列表项。
最佳答案
l= ['Santa Cruz','Santa fe','Sumbai','Delhi']
l1 = [name for name in l if name.startswith("S")]
编辑
所有字符串都有一个名为startswith
的方法。取字符串的第 0 个元素也可以解决问题。
对于列表理解,l1 = [name for name in l if name.startswith("S")]
行中发生的事情与
l= ['Santa Cruz','Santa fe','Sumbai','Delhi']
l1 = []
for name in l:
if name.startswith("S"): # also: if name[0] == "S" would work
l1.append(name)
但是更简洁的写下来的方式
关于python - 使用 Python 将列表 l 中以 'S' 开头的项目保存到 l2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65514577/