1. 程式人生 > >python 索引和分片

python 索引和分片

index和c一樣,從0開始,但是可以用負數,比如-1, -2 。意思是從尾部開始的偏移量。

S = ‘spam’
S[-1] -> ‘m’

分片

S[i:j]

意思提取是從i到j的部分作為一個序列返回。不包括S[j].

>>> S[1:3]
'pa'
>>> S[1:]
'pam'
>>> S[:3]
'spa'
>>> S[:-1]
'spa'
>>> S[:]
'spam'

S[i:j:k] 還可以設定步進,
S[::-1] 就是逆序輸出了。

L[:] 相當於做了一個拷貝,

>>> L1 = [2, 3, 4]
>>> L2 = L1[:]
>>> L1[0] = 1
>>> L1
[1, 3, 4]
>>> L2
[2, 3, 4]

L1的修改不影響L2,因為L2是L1的一個拷貝了。這種分片能做一個拷貝的操作,很方便,但是隻使用與序列,不能應用在其他可變列表上,如果需要複製一個字典或者集合應該使用X.copy()方法。

還有一個分片的典型場景是處理命令引數

import sys
print sys.argv
print sys.argv[1:]

% python echo1.py 1
2 3 ['echo1.py', '1', '2', '3'] ['1', '2', '3']