序列除了索引和切片,還有加法、乘法和函數(shù)等功能,這些功能在我們進行序列操作的時候能提供一定的幫助,本節(jié)介紹一下加法和乘法。
1. 加法
序列具有相加的功能,這個相加同我們數(shù)字之間的相加類似,但序列支持將兩個類型相同的序列加在一起,使用‘+’符號進行操作。
我們通過兩個例子簡單看一下:
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)
運行結(jié)果:
兩個列表相加后為: [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)
運行結(jié)果:
Traceback (most recent call last): File "", line 4, in <module> print('列表和字符串相加:',my_list+my_str) TypeError: can only concatenate list (not "str") to list
運行圖:
錯誤提示為:只能將列表(不是“str”)連接到列表,因此在‘+’操作的時候要使用相同類型進行相加。
2. 乘法
Python提供序列的相乘功能,這個相乘和算法的不太相同,當一個序列乘上x的時候,生成的新的序列是將原有序列重復(fù)的相加了x次。
序列的乘法相對來說也是比較簡單的,我們通過簡單例子來看一下。
my_list = [1,2,3,4,5] my_str = 'www.sztianhecheng.cn' 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)
輸出結(jié)果:
將my_list列表乘上3得到一個新列表為: [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
將my_str字符串乘上3得到一個新字符串為:www.sztianhecheng.cnwww.sztianhecheng.cnwww.sztianhecheng.cn
將my_tuple元組乘上3得到一個新元組為: (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
運行圖為:
唯一要注意的就是這里生成的是新的列表,字符串,元組,原始的列表和字符串以及元組都是沒有改變的,這一點大家可以通過再次print來試一下。
序列的乘法還有一個初始化指定長度列表的功能。
看一下下面代碼:
my_list = [None] * 5#實現(xiàn)一個長度為5的初始化列表 print(my_list)
輸出結(jié)果:
[None, None, None, None, None]
這種方式通常在列表操作超出已有數(shù)據(jù)的長度的時候會使用到,因為當訪問列表的索引大于列表長度的時候就會出現(xiàn)訪問錯誤的問題。
關(guān)于加法和乘法就講到這里,下一章是序列的精華,在進行算法操作的時候顯得尤為方便。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程