Python如何通过切片而非startwith()查找列表中以'A'开头的字符串
问题说明
需要在Python中实现查找列表内以'A'开头的字符串的功能,要求不使用startswith()方法,通过字符串切片的方式完成。
此前尝试编写的代码如下:
List1=[] for i in name: If i.startwith(‘A’) List1.append(i) Print(List1)
注:原代码存在几处语法问题:关键字
if、内置函数startswith方法名拼写错误,条件判断行末尾缺少冒号,代码块没有正确缩进。
实现方案
核心逻辑:Python字符串支持切片操作,取字符串从索引0开始、长度为1的切片(即第一个字符),判断该切片是否等于'A'即可匹配目标字符串。使用切片写法s[:1]时,即使遇到空字符串也不会抛出索引越界错误,兼容性比直接取s[0]更好。
基础循环实现
# name为待遍历的原始字符串列表,可替换为实际数据 name = ["Apple", "Banana", "Apricot", "Blueberry", "Avocado", ""] res_list = [] for item in name: # 取第一个字符切片判断是否为'A' if item[:1] == 'A': res_list.append(item) print(res_list)
运行输出:
['Apple', 'Apricot', 'Avocado']
简洁列表推导式实现
如果偏好更精简的写法,可以直接用列表推导式完成筛选:
res_list = [item for item in name if item[:1] == 'A'] print(res_list)
内容的提问来源于stack exchange,提问作者A Ah
相关产品推荐
相关产品推荐

