Python——列表(2)
阿新 • • 發佈:2018-11-12
文章目錄
1. 列表排序
(1).sort( )
要對列表排序,可以使用 sort( ) 方法。
>>> letters = ['d', 'a', 'e', 'c', 'b'] >>> print letters ['d', 'a', 'e', 'c', 'b'] >>> letters.sort() >>> print letters ['a', 'b', 'c', 'd', 'e'] >>>
sort( ) 會自動按字母順序對字串從小到大排序;如果是數字,就會按照數字順序從小到大排序。
因為sort( ) 會在原地修改列表,而不能建立一個新的列表,必須分兩步完成。故sort( )不能這樣用:
print letters.sort()
(2).按逆序排列
有兩種方法:
- reverse( )
- reverse引數
reverse( )
一種是先按照正常方式對序列排序,然後再對這個有序列表完成逆置,使用新列表方法reverse( ):
>>> letters = ['d', 'a', 'c', 'e', 'b'] >>> letters.sort() >>> print letters ['a', 'b', 'c', 'd', 'e'] >>> letters.reverse() >>> print letters ['e', 'd', 'c', 'b', 'a'] >>>
reverse 引數
另一種方法是向sort( ) 增加一個引數,直接讓它按照降序排列:
>>> letters = ['d', 'a', 'c', 'e', 'b']
>>> letters.sort(reverse = True)
>>> print letters
['e', 'd', 'c', 'b', 'a']
以上所有操作都是對原列表做出修改,就是說原來的列表已經沒有了,如果希望保留原來的順序,注意先試用分片法建立副本。
(3). sorted( )
還有另一種可以得到一個列表的有序副本而不會改變原列表的順序:
>>> letters = ['d', 'a', 'c', 'e', 'b']
>>> newer = sorted(letters)
>>> print newer
['a', 'b', 'c', 'd', 'e']
>>> print letters
['d', 'a', 'c', 'e', 'b']
2. 雙重列表
如下:
>>> EngMarks = [80, 99, 32]
>>> PEMarks = [95, 56, 100]
>>> mathMarks = [77, 86, 91]
>>> classMarks = [ EngMarks, PEMarks, mathMarks]
>>> print classMarks
[[80, 99, 32], [95, 56, 100], [77, 86, 91]]
這樣就得到一個元素列表,而其中的每一元素又是另一個列表,我們建立了一個“列表中的列表”,也就是雙重列表。
我們也可以直接建立classMarks:
>>> classMarks = [[80, 99, 32], [95, 56, 100], [77, 86, 91]]
>>> print classMarks
[[80, 99, 32], [95, 56, 100], [77, 86, 91]]
使用in做迴圈處理:
>>> for studentMarks in classMarks:
print studentMarks
[80, 99, 32]
[95, 56, 100]
[77, 86, 91]
從表中獲取一個值:
其實這個很好理解,就像C語言中的二維陣列:
>>> print classMarks[0][2]
32
3. 小練習
(1) 寫一個程式,手動輸入5個姓名,程式把5個名字儲存到一個列表中最後打印出來:
nameList = []
print "Enter 5 name: "
for i in range(5):
name = raw_input()
nameList.append(name)
print "The names are ",nameList
(2) 修改(1),列印原列表和列表排序後的結果
nameList = []
print "Enter 5 name: "
for i in range(5):
name = raw_input()
nameList.append(name)
print "The names are ",nameList
print "The sorted names are ",sorted(nameList)
(3) 修改(1),只打印第三個名字
nameList = []
print "Enter 5 name: "
for i in range(5):
name = raw_input()
nameList.append(name)
print "The name are ",nameList[2]
(4) 修改(1),讓使用者替換其中一個名字。使用者應該可以選擇替換哪一個,然後鍵入名字。最後顯示這個新列表。
nameList = []
print "Enter 5 name: "
for i in range(5):
name = raw_input()
nameList.append(name)
m = int(raw_input("The index you want to delete: "))
del nameList[m]
newName = raw_input("The name you want yo add: ")
nameList.insert(m,newName)
print "The names are ",nameList