Python中的有序序列有哪些
Python中的有序序列有哪些
list、tuple以及str都是有序序列,和後面兩者不同的是list是個可變物件,tuple和str則是不可變物件。主要講的就是這三種的有序序列的一些方式。
方法 | 效果 |
---|---|
L1.append(var) | 在後面追加元素 |
L1.pop(var) | 返回相應的元素,並在L1中刪除 |
L1.remove(var) | 移除列表中某個值的第一個匹配項 |
L1.sort() | 列表會進行排序 |
L1.reverse() | 列表倒序排列 |
L1.count(var) | 計算列表中某個值出現的次數 |
以上就是列表常用的方法,其中L1.remove()在 for…. in….迴圈中會出現狀況。
比如 ,你想取大於20的數,把小於20的全部刪掉 :
list2 = range(50) for i in list2: if i<20: print "do something" list2.remove(i) print list2
得到的結果是這樣的:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
原因在於在這個迭代過程中,for..in迴圈靠的是指標指示
[0,1,2,….49] ^
第一次remove之後,列表成這樣的形式,
[1,2,3,4…49] ^
如果你想要得到正確的結果的話,可以這樣寫,enumerate,這個內建函式既可以遍歷索引,又可以遍歷元素。
for i, n in enumerate(numbers): if n < 20 : print "do something" numbers[i] = None numbers = [n for n in numbers if n is not None]
tuple
tuple是不可變的有序序列,一旦初始化,就不能修改。
因為無法修改所以沒有apeend()等方法,也無法刪除其中單個元素,只能刪除整個元組。
tup1 = (1, 4, 5, 3); del tup1; print tup1 #得到的答案就是這樣 NameError: name 'tup1' is not defined
字串
str,字串在python中是有序序列,這意味著字串在python中可以做很多操作,比如slice。不過有一點是字串中某部分無法進行修改,因為是不可變物件。
字串經常碰到的一個問題就是怎麼把 字串倒序輸出。
這時候我們就可以把slice用到字串中,編寫一個倒序輸出的函式如下:
def reverse(x): if not isinstance(x,basestring): raise TypeError ("bad type"); else: return x[::-1]
isinstance是用來判斷引數是否是字串,如果不是的話將會報錯。
basestring是str和unicode的父類,可以用來分辨是不是字串的型別。
更多技術請關注。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3016/viewspace-2834075/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 超全域性陣列有哪些?超全域性陣列有什麼作用?陣列
- Python中的字典遍歷有序嗎?Python
- Python&Redis 無序集合set、有序集合zset操作PythonRedis
- 順序表有序插入資料
- 適合Linux系統初學的redhat系列有哪些?LinuxRedhat
- 順序表應用5:有序順序表歸併
- 順序表應用6:有序順序表查詢
- 陣列有哪些方法支援響應式更新的?底層原理如何實現?陣列
- [Python手撕]有序陣列中的單一元素Python陣列
- python 實現有序字典Python
- sql中select列有自定義函式 dblinkSQL函式
- python中list有哪些方法Python
- 兩個有序陣列的中位數陣列
- Python中按字母順序對列表排序Python排序
- python中樹有哪些種類Python
- Python中的字串切割和拼接方法都有哪些?Python字串
- 為什麼處理有序陣列比無序陣列快?陣列
- 如何去除有序陣列中的重複元素陣列
- 介紹python中運算子優先順序Python
- Python中模組是什麼?Python有哪些模組?Python
- python中pandas.Dataframe合併的方法有哪些?Python
- Python中Pool常用函式有哪些?Python函式
- 分支預測:為什麼有序陣列比無序陣列快?陣列
- 尋找兩個有序陣列的中位數陣列
- 刪除有序陣列中的重複項 II陣列
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- 【二叉樹】前中序求後序,中後序求前序二叉樹
- Java框架學習順序是哪些Java框架
- Java框架學習順序是哪些?Java框架
- Python中合併兩個列表常用的方法有哪些?Python
- python的順序程式設計Python程式設計
- Python 模組的載入順序Python
- 中序先序到後序 洛谷1827
- c#刪除有序陣列中的重複項C#陣列
- 還原二叉樹(先序+中序-〉後序)二叉樹
- 後序+中序(前序+中序)重構樹,嚴格O(N)演算法演算法
- 先序、中序、後序序列的二叉樹構造演算法二叉樹演算法
- 已知二叉樹的先序和後序求任意一中序二叉樹