如何获取列表中指定标记元素的前一个相邻元素
实现方案
核心思路
由于列表是按时间追加生成的,只需要先定位到标记元素的索引,再根据偏移量取对应位置的元素即可。如果要优先匹配最新出现的标记元素,直接倒序遍历列表查找第一个符合条件的标记即可。
场景1:从列表末尾检索,找到abc之后紧邻的8元素
实现代码(Python)
items_list = [1,8,2,5,8,4,'abc','gd',5,8] # 先倒序找第一个出现的abc的索引 abc_index = len(items_list) - 1 - items_list[::-1].index('abc') # 从abc的下一个位置开始找第一个出现的8 target_num = None for i in range(abc_index + 1, len(items_list)): if items_list[i] == 8: target_num = 8 break print(target_num)
输出结果
8
场景2:获取abc.current前一位的txt文件名
该方案适配你描述的每日新增文件的实际使用场景,自动匹配最新出现的标记文件:
实现代码(Python)
file_list = ['str_123.txt', 'zap_3456.log', 'str_678.txt', 'bcv_7886.log', 'abc.current', 'str_987.txt', 'zap_654.log'] # 倒序查找第一个出现的abc.current的索引 marker_index = len(file_list) - 1 - file_list[::-1].index('abc.current') # 取前一位的元素即为目标文件名 target_file = file_list[marker_index - 1] print(target_file)
输出结果
str_678.txt
注意事项
- 如果列表中可能不存在标记元素,建议先加判断逻辑避免抛出
ValueError异常 - 如果存在多个标记元素,倒序查找的逻辑会自动匹配最新追加的那个标记,符合每日新增文件的使用场景
内容的提问来源于stack exchange,提问作者user12252991
相关产品推荐
相关产品推荐

