序列通用操作,原地修改方法,深淺複製
阿新 • • 發佈:2018-11-06
序列的通用操作
Python包含6種內建的序列:列表,元組,字串,Unicode字串,buffer物件和xrang物件。
所有序列型別都可以進行某些特定的操作。這些操作包括但不限於:索引(indexing),分片(slicing),加(adding),乘(multiplying),以及成員資格(in,not in),除此之外,Python還有計算序列長度,找出最大元素和最小元素的內建函式以及迭代(iteration)。
索引
序列中所有元素都是有編號的,從0開始遞增。這些元素可以通過編號分別訪問。
a = 'hello world!'
print(a[1])
>>>e
a = ['in','to','be','not']
print(a[1])
>>>to
a = ('in','do','to','be','not') print(a[1]) >>>do
如果一個函式呼叫返回一個序列,那麼可以直接對返回結果進行索引操作。
name = input('please input your name:')[2]
print(name)
>>>please input your name:Dance
>>>e
分片:與使用索引來訪問單個元素類似,可以使用分片操作來訪問一定範圍內的元素。
url = 'www.google.cn'
print(url[4:10])
>>>google
捷徑
訪問前兩個元素
url = 'www.google.cn' print(url[:2]) >>>ww
訪問最後兩個元素
url = 'www.google.cn'
print(url[-2:])
>>>cn
複製整個序列
url = 'www.google.cn'
x = url[:]
print(x)
>>>www.google.cn
步長
n = [1,2,3,4,5,6,7,8,9]
print(n[::2])
>>>[1, 3, 5, 7, 9]
print(n[::3])
>>>[1, 4, 7]
步長可以是負數,此時分片從右到左提取。
n = [1,2,3,4,5,6,7,8,9]
print(n[::-3])
>>>[9, 6, 3]
序列相加
a = 'name'
b = 'colour'
print(a+b)
>>>namecolour
x = ['red','blue']
y = ['yellow','white']
print(x+y) >>>['red', 'blue', 'yellow', 'white'] n = ('users','admin') m = ('systme','ios') print(n+m) >>>('users', 'admin', 'systme', 'ios')
不同資料型別的不能相加。
乘法
a = 'python'*5
print(a)
>>>pythonpythonpythonpythonpython
a = ['python']*5
print(a)
>>>['python', 'python', 'python', 'python', 'python']
成員資格:in/ not in
a = 'Python'
print('y' in a)
>>>True
n = [ 'red','white','blue','black']
print('red' not in n)
>>>False
長度,最小值和最大值(len,min,max)
n = [23,1,8,63,34,2,45]
print(len(n))
print(min(n))
>>>7
>>>1
a = [ 'red','white','blue','black']
print(len(a)) print(min(a)) print(max(a)) >>>4 >>>black >>>white
待補充
1.原地修改的概念?
2.什麼方法屬於原地修改?
3.關於字典和列表的深複製和淺複製。