Python学习笔记之高级特性一切片

2019/07/09更:
今天算是体会到了切片的强大。补充两点:
第一,切片的形式是这样的:[start: stop: step]。即切片有三个参数,第一个是开始下标,第二个是结束下标(注意:包头不包尾),第三个是步长。

第二,切片还能从从尾到头取元素,只需将步长设置为-1即可。这样反转一个序列就变得易如反掌。代码如下:

# 反转 L
L = [0, 1, 2, 3, 4]
print(L[::-1])
# 结果:[4, 3, 2, 1, 0]

那么判断一个数字是否是回文数就变得异常简单:

# 判断一个数是否是回文数
def is_palindrome(n):
    return str(n) == str(n)[::-1]

正文如下:

  1. 切片用于取一个list中的元素。例如,要取一个list中的前三个元素,有两种办法,代码如下:

    # 取一个 list 中的前三个元素
    L = [0, 1, 2, 3, 4]
    
    # 第一种方法,不使用切片
    [L[0], L[1], L[2]]
    
    # 第二种方法,使用切片
    L[0:3]
    

    第一种方法显然局限性很大,当要取出100个时,相当困难。而第二种方法则方便许多。
    切片使用 [n:m] 的方式从list中取指定索引范围的元素,其中取得结果为下标为 n 到 m-1的元素(包头不包尾)。当 n = 0 时,n还可以省略。

    # n = 0 时,n 可以省略
    L[:3]
    
  2. 切片还有一个强大的功能,就是使用 [起始下标::固定步长] 的方式从list中取出固定步长的元素。例如,取出list中从1下标开始,固定步长为5的元素。代码如下:

    # 取出 list 中从1下标开始,固定步长为5的元素
    L = list(range(100))
    print(L[1::5])
    
    # 结果如下
    # [1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86, 91, 96]
    
  3. Python支持取倒数的元素,切片也支持这种操作。切片对于取倒数两个元素,或者倒数第三到第二这种操作而言,代码都是非常简单的。代码如下:

    # 取倒数两个元素
    L[-2:]
    # 结果如下
    # [3, 4]
    	
    # 取倒数第三到第二的元素
    L[-3:-1]
    # 结果如下
    # [2, 3]
    

    上述二种操作有几点需注意:

    • 倒数第一的元素下标为-1,如果要取倒数的所有元素,则切片第二个数不填;
    • 取倒数操作和正取一样,切片中的两个范围也是包头不包尾。
  4. 字符串也可以看成一种list,对字符串也有上述操作。代码如下:

    # 取一个字符串的前五个字符
    str = 'Space_walk'
    print(str[0:5])
    
    # 结果如下
    # Space
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值