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