如何从分段间隔的Python列表中提取多组指定位置的字符串对
解决方案
你的列表每8个元素为一组,要提取每组的第0个和第4个元素,之前用lst[::5]不对是因为每组的间隔是8,不是5。可以用以下两种方法实现:
方法一:循环遍历分组
lst = ['L38A', '38', 'L', 'A', '-6.7742', '-3.5671', '0.00226028', '0.4888', 'L38C', '38', 'L', 'C', '-7.7904', '-6.6306', '0.0', '0.4888', 'L38D', '38', 'L', 'D', '-6.3475', '-3.0068', '0.00398551', '0.4888', 'L38E', '38', 'L', 'E', '-6.4752', '-3.4645', '0.00250913', '0.4888'] result = [] # 按步长8遍历每组的起始索引 for i in range(0, len(lst), 8): # 取出当前组的第0个和第4个元素组成元组 result.append( (lst[i], lst[i+4]) ) print(result)
方法二:列表推导式(更简洁)
lst = ['L38A', '38', 'L', 'A', '-6.7742', '-3.5671', '0.00226028', '0.4888', 'L38C', '38', 'L', 'C', '-7.7904', '-6.6306', '0.0', '0.4888', 'L38D', '38', 'L', 'D', '-6.3475', '-3.0068', '0.00398551', '0.4888', 'L38E', '38', 'L', 'E', '-6.4752', '-3.4645', '0.00250913', '0.4888'] result = [ (lst[i], lst[i+4]) for i in range(0, len(lst), 8) ] print(result)
两种方法都会输出预期的结果:
[('L38A', '-6.7742'), ('L38C', '-7.7904'), ('L38D', '-6.3475'), ('L38E', '-6.4752')]
内容的提问来源于stack exchange,提问作者Chip
相关产品推荐
相关产品推荐

