1.list
list是一種可變的有序容器,每個元素都擁有自己的下標.列表使用[]定義.
(1)定義方法
x = [1,2,3] #第一種,使用[]
y = x #第二種,賦值
y = list({1,2,3}) #第三種,使用強制轉換函數
(2)下標
下標從0開始,允許負數作爲下標,最後一個元素的下標爲-1,第一個元素的下標爲-n,第i個元素的下標爲(i-1)或-(n-i+1).
(3)切片
設x是一個列表,則
x[start:end:step]
爲列表的一個切片,start爲起始位置,包含,可以省略,end爲結束位置,不包含,可以省略,step爲步長,可以省略,默認爲1.
三者都可以爲負數.
三者都省略時爲整個列表,反向遍歷時可以省略start與end,步長設爲-1:
(4)反向遍歷
反向遍歷有三種方法:
A.[::-1]
使用切片,像上面一樣,步長設爲-1
B.使用內置函數reversed()
reversed()會返回一個迭代器,想要獲取裏面的內容可以轉換爲list().
C.使用列表方法.reverse()
前兩種方法不會改變列表,列表方法reverse()改變了列表.
(5)列表推導式
列表推導式可用於快速生成有規律性的列表,比如生成包含10個2的列表:
[2 for i in range(10)]
有點類似於把for循環的循環體提到前面.
(6)列表的常用函數
A.extend()
extend()類似於直接使用+,但是+不會改變列表本身,而extend()會改變列表本身.
B.append()
append()把參數作爲一個元素直接追加到列表中.
C.insert()
insert需要兩個參數,分別表示插入的下標與插入的值.
D.pop()
根據下標刪除元素.
E.remove()
根據值刪除元素,刪除第一個出現的元素,就是說對於重複元素僅刪除第一次出現的元素.
F.len()
列表長度,注意這個不是列表的方法.
G.sorted()與sort()
這兩個都是排序的方法,sorted()不是列表的方法,把列表作爲函數的參數傳遞,sort是列表的方法,會改變列表本身.
H.enumerate()
逐個顯示對應的下標,返回的是一個迭代器.想要顯示可以轉換爲列表.
I.zip()
列表的並行計算.
2.元組
元組是不可變的有序容器,用()表示.
(1)定義方法
x = (1,2,3,4,5) #第一種,使用()
y = x #第二種,使用賦值
x = tuple('kkkrrr') #第三種,使用tuple強制轉換
x = 1,2,3,4,5 #第四種,實質上還是第一種,省略了圓括號
(2)特點
用逗號分隔的都是元組,是不可變對象,支持拆包式賦值.
(3)應用
交換兩個變量:
函數的不定長參數:
def fun(arg1,*arg2):
print(arg1)
if arg2 != ():
if len(arg2) == 1:
print(arg2[0])
else:
print(arg2)
fun(1)
fun(2,3)
fun(4,5,6)