序列除了索引和切片,還有加法、乘法和函數等功能,這些功能在我們進行序列運算的時候能提供一定的幫助,本節介紹一下加法和乘法。
序列具有相加的功能,這個相加同我們數字之間的相加類似,但序列支援將兩個類型相同的序列加在一起,使用' + '符號進行操作。
我們透過兩個例子簡單來看一下:
1)相同類型的序列相加,代碼如下:
my_list=[1,2,3,4,5,6,7,8,9,]my_list2=[11,22,33,44,55,66]my_str='abcdefghijklmn'my_str2='opqrstuvwxyz'my_tuple=( 1,2,3,4,5)my_tuple2=(6,7,8,9)print('兩個列表相加後為:',my_list+my_list2)print('兩個字串相加後為: ',my_str+my_str2)print('兩個元組相加後:',my_tuple+my_tuple2)
運行結果:
兩個列表相加後為: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66]
兩個字串相加後為: abcdefghijklmnopqrstuvwxyz
兩個元組相加後: (1, 2, 3, 4, 5, 6, 7, 8, 9)
2)不同類型的序列相加,代碼如下:
my_list=[1,2,3,4,5,6,7,8,9,]my_str='abcdefghijklmn'my_tuple=(1,2,3,4,5)print('列表和字串相加: ',my_list+my_str)print('字串和元組相加:',my_str+my_tuple)
運行結果:
Traceback(mostrecentcalllast):File,line4,in<module>print('列表和字串相加:',my_list+my_str)TypeError:canonlyconcatenatelist(notstr)tolist
運行圖:
錯誤提示為:只能將列表(不是“str”)連接到列表,因此在'+'操作的時候要使用相同類型進行相加。
Python提供序列的相乘功能,這個相乘和演算法的不太相同,當一個序列乘上x的時候,產生的新的序列是將原有序列重複的相加了x次。
序列的乘法相對來說也是比較簡單的,我們透過簡單例子來看一下。
my_list=[1,2,3,4,5]my_str='www.dotcpp.com'my_tuple=(1,2,3,4,5)print('將my_list列表乘上3得到一個新列表為: ',my_list*3)print('將my_str字串乘上3得到一個新字串為:',my_str*3)print('將my_tuple元組乘上3得到一個新元組為:',my_tuple* 3)
輸出結果:
將my_list列表乘以3得到一個新列表為: [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
將my_str字串乘以3得到一個新字串為:www.dotcpp.comwww.dotcpp.comwww.dotcpp.com
將my_tuple元組乘上3得到一個新元組為: (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
運行圖為:
唯一要注意的就是這裡生成的是新的列表,字串,元組,原始的列表和字串以及元組都是沒有改變的,這一點大家可以透過再次print來試一下。
序列的乘法還有一個初始化指定長度清單的功能。
看一下下面程式碼:
my_list=[None]*5#實作一個長度為5的初始化清單print(my_list)
輸出結果:
[None,None,None,None,None]
這種方式通常在清單操作超出已有資料的長度的時候會使用到,因為當存取清單的索引大於清單長度的時候就會出現存取錯誤的問題。
關於加法和乘法就講到這裡,下一章是序列的精華,在進行演算法運算的時候顯得特別方便。