如何使用字符串索引Python数组的起始与终止位置?
用指定字符串获取Python列表的子集
要从有序无重复的字符串列表中,通过指定起止字符串来获取包含两端的子集,直接用列表的index()方法结合切片就能实现,步骤如下:
- 先用
index()方法拿到起始字符串和终止字符串在列表中的索引位置 - 利用列表切片提取子集,注意切片是左闭右开规则,所以终止索引需要加1才能包含目标终止元素
针对你的示例,完整代码如下:
fam_arr = ['mom', 'dad', 'sister', 'brother', 'dog', 'cat'] # 指定起止字符串 start_str = 'dad' end_str = 'dog' # 获取索引 start_idx = fam_arr.index(start_str) end_idx = fam_arr.index(end_str) # 提取子集 subset_arr = fam_arr[start_idx : end_idx + 1] print(subset_arr) # 输出结果:['dad', 'sister', 'brother', 'dog']
注意事项
- 因为你的列表是有序且无重复的,
index()会返回唯一的匹配索引;如果列表有重复元素,index()只会返回第一个匹配项的位置 - 如果指定的字符串不在列表中,
index()会抛出ValueError,可以提前做存在性判断避免报错:
if start_str not in fam_arr or end_str not in fam_arr: raise ValueError("指定的起始或终止字符串不在列表中")
内容的提问来源于stack exchange,提问作者JadeHippo
相关产品推荐
相关产品推荐

