问题描述
给定一个列表,根据一个索引,获取该列表中的片段,组成新的列表。
示例
假设有一个完整列表 [1, 2, 3, 4, 5, 6, 7, 8] ,和一个索引列表 [0,1, 4, 6] ;意味着根据索引取出完整列表中索引为0到1、4到6之间的数字,组成新的列表,输出 [1, 2, 5, 6, 7] 。
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
def discontinuous_list(list1, index_list): """ list1 is a complete one, according to the index_list, take some disconinuous list together, return a new one for example, list1 = [1,2,3,4,5,6,7], its index is [0,1,2,3,4,5,6]. Thus given a index_list = [0,1,4,6], a list [1,2,5,6,7] should be returned. """ final_list = [] for index in range(int(len(index_list)/2)): start_index = index_list[2*index] end_index = index_list[2*index+1] final_list.extend(list1[start_index: end_index+1]) return final_list alist = [1,2,3,4,5,6,7,8] index_list = [0, 1, 4, 6] print("输出:", discontinuous_list(alist, index_list)) |
运行结果
1 |
输出: [1, 2, 5, 6, 7] |