面试题答案
一键面试-
使用切片操作获取子列表:
big_list = list(range(1000)) sub_list = big_list[::5]
这里
big_list[::5]
表示从列表的开头开始,每隔5个元素取一个,一直取到列表末尾。 -
根据列表长度动态调整切片参数以避免索引错误: 在切片操作
big_list[start:stop:step]
中,start
(起始索引)默认为0,stop
(结束索引)默认为列表长度,step
(步长)为5。由于Python切片操作会自动处理超出列表长度的情况,不会引发索引错误。例如,如果step
设置较大,导致最后一个有效索引之后没有足够元素,切片操作会自动结束,不会报错。 -
优化代码以适应不同长度的列表: 上述代码已经可以适应不同长度的列表。因为Python切片操作的特性,无论列表长度如何,只要按照
[::5]
这样的切片方式,就会正确地获取子列表。如果想要更明确地处理不同长度列表的情况,可以在切片前检查列表长度:def get_sub_list(big_list): length = len(big_list) if length < 5: return big_list return big_list[::5] big_list = list(range(1000)) result = get_sub_list(big_list)
这样在列表长度小于5时,直接返回原列表,在列表长度大于等于5时,返回每隔5个元素的子列表,进一步增强了代码的适应性。