摘要:第二個索引元素不在分片內。顯示操作索引指向第個元素,第個元素不存在。序列加法乘法表示個空列表空列表用初始化成員資格運算符布爾運算符,檢查值是否在序列中。修改列表,沒有返回值。在原位置對列表排序。
序列
例:
Edward = ["abc", 12]
序列中的所有元素都是有編號的,從0開始遞增。
Note: 使用負數索引-1,Python會從右邊,也就是從最后一個元素開始計數。最后一個元素的位置編號是-1.索引操作
字符串、函數可以直接對返回結果進行操作
‘hello’[1] fo = raw_input("year: ")[2]分片
分片通過冒號:隔開兩個索引。
代碼:
numbers = [1, 2, 3, 4] number[1:2]
輸出:
[2, 3]
第一個索引:
提取的第一個元素的編號
第二個索引:
分片之后,剩余部分的第一個元素的編號。 Note:分片第二個索引指向的元素取不到。
簡而言之:
分片操作的實現(xiàn)需要兩個索引作為邊界。 第一個索引元素是包含在分片內的。 第二個索引元素不在分片內。
思考:
numbers = [1,2,3,4,5,6,7,8,9,10] 如何訪問最后3個元素。
1.顯示操作
numbers[7:10] #索引10指向第11個元素,第11個元素不存在。為了讓分片包含最后一個元素,必須提供最后一個元素的下一個元素的索引作為邊界。
2.從尾開始計數(不可行)
numbers[-3:-1] #無法訪問最后一個元素
3.使用索引0訪問最后一個元素(不可行)
numbers[-3:0] #只要分片最左的索引比右邊的晚出現(xiàn)在序列中,一律返回空序列。
4.置空最后一個索引(優(yōu)雅,推薦)
numbers[-3:]
同樣適用序列開始的元素:
numbers[:3]復制序列
復制整個序列,將兩個索引都置空。
number2 = numbers[:] note: number2 = numbers #不可行,會將number2與numbers指向同一個序列步長
第三個參數是步長。Python中默認步長為1.
numbers[0:10:2] #取步長為2,取間隔為1個元素的分片。
Note:
步長不能為0。 負數步長,分片從右到左提取元素。序列加法、乘法
endings = ["st","nd",‘rd’] + 17*["th"] + ["st","nd",‘rd’] + ["th"]*7 #17*["th"]表示17個["th"]空列表、None
空列表
[]
用None初始化
seq = [None]*10成員資格
in運算符:布爾運算符,檢查值是否在序列中。
subject = "$$$ abssdjk $$$!" "$$$" in subject users = ["bob","jack"] raw_input("your name:") in users長度、最小值和最大值
內建函數
len、min、max
len函數
返回序列中所有包含元素的數量
min函數、max函數
返回序列中最大和最小的元素
Note:
序列包括: 列表、字符串、元組 故:以上序列的特種對于列表字符串和元組都適用。列表
列表可以修改:
元素賦值
元素刪除
分片賦值
列表方法
list函數用于創(chuàng)建列表,適用于所有類型的序列,例如字符串
例:
list("hello")#根據字符串創(chuàng)建列表["h","e","l","l","o"]
列表轉字符串
"".join(somelist)列表基本操作
1. 元素賦值 2. 刪除元素 3. 分片賦值
1. 元素賦值
x = [1,2,3] x[1] = 6
2. 刪除元素
names = ["bob","jack","afra"] del names[2] #列表長度減一
3. 分片賦值
name = list("afra") name[1:] = list("lpha")
分片賦值:
1.可以使用與原序列不等長的序列將分片替換
name = list("perl") name[1:] = list("ython")
2.可以在不需要替換任何原有元素的情況下插入新元素
number = [1,5] number[1:1] = [2,3,4]
3.可以刪除元素
number = [1,2,3,4,5] number[1:4] = []列表方法
方法:
一個與某些對象有緊密聯(lián)系的函數。
方法調用:
對象.方法(args)
列表方法
1.append 2.count 3.extend 4.index 5.insert 6.pop 7.remove 8.reverse 9.sort 10.高級排序
1.append
在列表末尾追加新對象,直接修改原列表
number = [1,2,3] number.append(4)
2.count
統(tǒng)計某個元素在列表中出現(xiàn)的次數
x = [1,1,2,2,2,3] x.count(1)
3.extend
在列表末尾一次性追加另一序列的多個值。即:用新列表擴展原因的列表。
Note:
extend和連接操作"+"的區(qū)別: extend方法修改了序列 原始的連接操作不修改序列,返回一個全新的列表 連接操作效率比extend方法低
4.index
從列表中找出某個值第一個匹配項的索引位置
knight = ["hao","a"] knight.index("hao")
5.insert
將對象插入到列表中。
numbers = [1,2,3] number.insert(3,"four")
6.pop
移除列表中的一個元素(默認最后一個),返回該元素的值。
pop方法是唯一修改列表又返回元素值的列表方法。
Python中實現(xiàn)棧:,出棧pop,入棧append。
x[1,2,3,4] x.pop() x.pop(0)
Note:在JavaScript中,pop只彈出棧頂值,不會返回棧頂值,可使用top()獲取棧頂值
7.remove
移除列表中某個值的第一個匹配項。修改列表,沒有返回值。
x = ["i","want","to","to"] x.remove("to")
8.reverse
將列表倒置。改變列表,沒有返回值。
x = [1,2,3] x.reverse()
9.sort
在原位置對列表排序。修改列表,返回None。
x = [8,7,2,43,45] x.sort()
思考:
用戶需要一個排好序的列表副本,但是保留原有列表不變。
思路:
把x的副本賦值給y,對y進行排序。
代碼:
x = [1,2,4,5,6,1,23,2,2,3,] y = x[:] y.sort() #強調:x[:]是一種很有效率的復制整個列表的方法。只是簡單的把x賦值給y,會讓x和y都指向同一個列表。
使用sorted函數
#獲取已排序的列表的副本 x = [1,3,4,5,2] y = sorted(x) #note:sort()是列表方法,sorted是函數
10.高級排序
1.cmp自定義比較函數
numbers.sort(cmp)
2.key 為每個元素創(chuàng)建一個鍵,根據鍵排序
numbers.sort(key = len)
3.reverse = true
numbers.sort(reverse = true)元組
圓括號表示,不可修改
(1,2,3)
空元組
()
一個值的元組
(42,)
Note:
必須加逗號,即使只有一個值。逗號非常重要。 (4+2) #不是元組 (4+2,) #是元組tuple函數
一序列作為參數轉換為元組
tuple([1,2,3])#(1,2,3) tuple("abc")#(a,b,c)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/42215.html
摘要:所解包的序列中的元素數量必須和賦值符號左邊的變量數量完全一致。其中,冒號標識語句塊開始塊中每一個語句都是縮進相同量退回到和已經閉合的塊一樣的縮進量時,表示當前塊結束。成員資格運算符字符串和序列比較字符串可按照字母順序比較。 print和import print打印多個表達式,用逗號,隔開 print abc:, 42, nonono #輸出在每個參數之間添加空格 print在結尾處加上...
摘要:處理不等長序列時,止于最短序列。版本一不推薦版本二這段代碼在基礎教程第二版我認為原書代碼中的縮進格式應該是錯了版本三推薦使用內建函數翻轉和排序迭代子句列表推導式輕量級循環(huán) 循環(huán) while 代碼1 x = 1 while x
摘要:零基礎學第二版已經放出,敬請各位訪問網站因為本人精力有限,同時維護兩地有難度。并且教程還不穩(wěn)定,正在不斷修改。如果這一版修訂完成,就會在本博客上連載。 《零基礎學python》第二版已經放出,敬請各位訪問網站:www.itdiffer.com 因為本人精力有限,同時維護兩地有難度。并且教程還不穩(wěn)定,正在不斷修改。如果這一版修訂完成,就會在本博客上連載。見諒。 第二版的目標是:Fro...
摘要:請回復這個帖子并注明組織個人信息來申請加入。權限分配靈活,能者居之。數量超過個,在所有組織中排名前。網站日超過,排名的峰值為。導航歸檔社區(qū)自媒體平臺微博知乎專欄公眾號博客園簡書合作侵權,請聯(lián)系請抄送一份到贊助我們 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=...
閱讀 3664·2021-10-11 10:58
閱讀 2252·2021-10-08 10:05
閱讀 2035·2021-09-27 13:34
閱讀 3578·2019-08-30 15:53
閱讀 2736·2019-08-30 14:02
閱讀 3564·2019-08-29 16:55
閱讀 625·2019-08-29 15:41
閱讀 1073·2019-08-29 15:23