您好,登錄后才能下訂單哦!
數據結構:數據結構是以某種方式(如通過編號)組合起來的數據元素集合。在python中,最基本的數據結構為序列,序列中每個元素都有編號從0開始。
1、序列概述:
?python內置了許多種序列,列表、元組、字符串等。
?列表和元組的不同在于,列表是可以修改的,而元組不可以,這意味著列表用于需要中途添加元素的情形,而元組適用于禁止修改元素的情形。
1.1、創建列表
假設你現在需要一個東西來儲存多個名字,那么用列表正合適
list_name = ["王曉明","李二"] #所有元素放在方括號內,并且里面的元素有逗號隔開
列表里面還可以包含其他列表
1.2、通用的序列操作
有一些操作適用所有序列,這些操作包括索引、切片、相加、相乘和成員資格檢查。還有一些內置函數用來判斷序列長度以及找出最大值和最小值。
1.2.1、序列中的所有元素都有編號,從0開始遞增,你可以像(下圖)這樣訪問
上圖訪問元素的這種方式稱之為索引,這種方式適用于索引序列。-1代表最后一個元素的位置
1.2.2、切片
除了使用索引來訪問單個元素之外,還可以用切片來訪問特定范圍內的元素
注意:切片只會切到第二個數的前一位,所以這里只輸出了.ba沒有i這是正確的
假如我現在有一個列表里面有很多個元素,然后我想要最后3位,我該怎么辦?或許你可以這樣。。。
top = 'www.baidu.com' #我只想要最后的com
print(top[-3:-1]) #也許我可以這樣
>>>co #代碼輸出(這樣好像不包括最后一個元素)
print(top[-3:0]) #那在-1再進一步寫成0呢
>>>[] #代碼輸出(是個空列表)
注:如果第一個索引的位置位于第二個索引的后面那么就是空序列這里-3在0的后面
print(top[-3:]) #事實上可以這樣寫,不指定第二個元素結束于序列末尾
#同樣的,如果切片在一個序列開頭,可以不指定第一個元素
print(top[:5])
#如果要復制整個序列,可將兩個索引都省略
top[:] #代碼輸出www.baidu.com
1.2.3、步長
執行切片時還可以指定第三個數,整個數必須大于1(默認就是1),整個數代表著步長(如下圖,每隔一個元素取一個)
1.2.4、序列相加
加法運算符來拼接序列,但是要注意只能拼接同類型的。
1.2.5、序列相乘
將序列與數n相乘時,將重復整個序列n次來生成一個新序列
1.2.6、成員資格in
要檢查一個值是否在序列中可以使用運算符in。滿足條件返回True,不滿足返回False(布爾運算符)。
1.3、列表
前面已經說過列表的基本操作,這里主要說下列表的方法
1.3.1、list函數
list函數用于類型轉換,可以把字符串或者元組轉換為列表
1.3.2、列表的基本操作
修改列表的值
lis = [1,2,3] #定義一個列表
lis[0] = 5 #使用索引給指定的元素賦值即可
print(lis) #命令回顯[5,2,3]
刪除元素
lis = [1,2,3]
del lis[0] # 將第一個元素刪除
1.3.3、 列表方法
append方法(將一個對象添加到列表末尾)
clear方法(清空列表)
copy方法(復制)
count方法(計算給定的值在列表中出現的次數)
extend方法(將多個值添加到列表末尾),那么是不是就是說可以將一個列表的值添加到另一個列表中呢?看下圖
insert方法(也是向列表中添加元素,只是可以指定位置)
index方法( 返回一個指定數值的下標)
pop(從列表末尾刪除一個值)
remove(刪除一個指定的值)
reverse(按照相反順序排序列表)
sort(排序)
方法sort用于對列表排序,但是是對原來的列表進行排序,而不是返回一個副本。
提示:如果不想修改原有列表那么只能copy一份,不能直接接受sort的值,因為
它沒有值
1.4、元組
與列表一樣,元組也是序列,和列表不同的地方在于,元組無法修改。創建一個元組也很簡單,只要將一些值用逗號隔開即可,自動創建元組。下圖上創建b元組的時候帶有(),這樣也可以,一般也都這樣做(推薦第二種)。
1.4.1、如何創建一個空元組和只要一個值的元組
空元組用2個括號表示,一個元素的元組后面加一個逗號
**1.4.2、tuple函數**
tuple和list工作原理一樣,都是將一個序列作為參數,轉換為列表或者元組
補充:訪問元組的方式和列表一樣,下標以及切片,元組無法修改,所以也不存在任何的修改方法()實際上要修改還是有辦法的
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。