1.認識列表
列表可以放入所有我們目前學習過的數據類型,甚至包括列表
2.有關列表的方法、內置函數(設列表的名稱為list)
向列表中添加元素:
append():list.append(要添加的元素),注意每次只能添加一個元素,被添加的元素自動添加到列表末尾
extend():list.extend([元素1,元素2]),以列表的形式追加新元素到原列表,每次可以添加多個元素,被添加的元素自動添加到列表末尾
插入元素:
insert():list.insert(a,b)a表示要追加的位置(注意起始位置為0),b表示被插入的元素
remove():list.remove(‘元素名’)(注意:元素必須存在于列表中,否則會報錯)
pop():彈棧,list.pop(索引值),默認彈出列表最后一個元素
sort(): list.sort(),對一個列表進行順序排序,從小到大
reverse(): list.reverse(),對一個列表進行逆序排序
copy() : list.copy(),拷貝一個列表
clear():list.clear(),將一個列表清空,變成一個空列表
count(計數):list.count(‘str’) 查找str出現的次數
比較兩個列表的元素:operator.eq(list1,list2)(前提需import operator)
計算列表元素個數:len(list1)
返回列表中元素最大值:max(list1)
返回列表中元素最小值:min(list1)
將元組轉換為列表:list(tuple1)
3.列表索引
通過list[索引值]的方法可以打印列表中的元素,索引值從0開始計數,因此list[1]打印第二個元素,同時列表支持負數索引,正常索引是從左到右索引,負數索引是從右到左,-1、-2、-3…
4.列表分片
list[1:3]:原列表list中索引值1~3的元素組成新的列表
list[1:]:索引值從1開始到最后一個元素
list[:]:原列表所有元素,特別的list2 = list[:]完成列表的拷貝
list[0:9:2]:索引從2開始到索引8,跨步2取數
list[::-1]:完成原列表的反轉
分片可以設置之前學過的步長,步長可以設置為正數、負數,但不能設為0,否則會報錯,當步長為負數時,則改變方向(從尾部開始向左走)。
5.列表推導式或列表解析
列表推導式(List comprehensions)也叫列表解析,靈感取自函數式編程語言 Haskell。Ta 是一個非常有用和靈活的工具,可以用來動態的創建列表,語法如:[有關A的表達式 for A in B]
>>> list1 = [x**2 for x in range(10)]
>>> list1
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>>
一個嚴肅的問題
list2=list1[:]
list3=list1
這里總共有三組列表,分別是list1、list2、list3,需要注意的是list1和list2指向的列表是不同,list3和list1指向的列表則是相同的
這里我們需要知道list2拷貝了list1,雖然兩者相同,卻等同于在內存中將一份數據復制了一份,它們指向的數據的地址是不同的,因此他們是不同的變量。list1、list2、list3像三個標簽,分別指向對應的數據,list3和list1指向的是同一數據,因此他們是相同的
小問題
利用 for 循環成對打印上邊 list 列表中的每個內容
list = ['小甲魚', 88, '黑夜', 90, '迷途', 85, '怡靜', 90, '秋舞斜陽', 88]
for each in range(len(list)):
if each%2 == 0:
print(list[each], list[each+1])
從列表的末尾取出一個元素,并將這個元素插入到列表的最前邊
list1.insert(0, list1.pop())
Tips
1.列表相加直接拼接,而不是把元素的值加在一起,但不能列表加元素,因為加號兩邊必須是一樣的類型
2.sort(reverse=True)表示從大到小,默認為False
忠告
學會print,我們可以在程序中各個地方打印某個變量的值、類型等,從而探究程序是否像我們想象的那樣執行。