对于Python 列表切片的理解

个人对于列表切片的理解:()

list_a = list(range(5)) # 结果list_a = [0, 1, 2, 3, 4]

‘’’
按照英文的解释就是from start to end,第三个参
数step官方解释是步长,也就是一步的长度,那
么切片是如何运作的?
个人答案:

while start < end:
    start +=step

‘’’
#下面举例:
#Example 1:

'''
list_a从默认位置list_a[0]开始创建新的列表,其成员
依次从list_a[0]、list_a[1]...list_a[4],原理就是
start = 0, start = start + step = 0 + 1 = 1...依次如此
改变列表索引,从而创建一个新列表
'''
list_a [: len(list_a): 1]    
#结果:list_a = [0, 1, 2, 3, 4]

#Example 2:

'''
 list_a从指明的位置list_a[4]开始创建新的列表,其成员
    依次从list_a[4]、list_a[3]...list_a[1],原理就是
    start = 4, start = start + step = 4 + (-1) = 3...依次如此
    改变列表索引,从而创建一个新列表,而之所以没有
    0,是因为切片的原理留头不留尾。
'''
list_a[4: 0: -1]  #其结果是[4, 3, 2, 1]

#Example 3:

'''
     list_a从指明的位置list_a[1]开始创建新的列表,其成员
        依次从list_a[1]、list_a[0]...list_a[-n],原理就是
        start = 4, start = start + step = 4 + (-1) = 3...依次如此
        改变列表索引,从而创建一个新列表,而之所以这个
        列表最后结果为空是因为,从start值开始,永远不能
        实现start+step == 2,而切片操作又不会报错,找不到
        的或不存在的列表,返回的都是空列表,所以下面返回
        了空列表,因为从理论上来说,该列表不存在。
'''
list_a[1: 2: -1] #其结果是[]

#Example 4:

'''
list_a从默认位置list_a[0]开始创建新的列表,其成员
依次从list_a[0]、list_a[1]...list_a[4],原理就是,step
默认等于1,start=0, end=len(list_a),然后执行start = 0, 
start = start + step = 0 + 1 = 1...依次如此改变列表索引,
从而创建一个新列表
'''
list_a [::]    
#结果:list_a = [0, 1, 2, 3, 4]

#Example 5:

'''
list_a从默认位置list_a[4]开始创建新的列表,其成员
依次从list_a[4]、list_a[3]...list_a[0],原理就是,step
等于-1,start=4(数据已经反过来了), end=-1,然后执
行start = 4, start = start + step = 4 + (-1) = 3...依次如
此改变列表索引,从而创建一个新列表。
至于a[-1]==a[4]你可以把这个看成是一种方便处理数据
的规定。
'''
list_a [::-1]    
#结果:list_a = [4, 3, 2, 1, 0]

猜你喜欢

转载自blog.csdn.net/weixin_43690548/article/details/87965712