1. 程式人生 > >小甲魚python教程第10-12講--python列表內建方法 筆記習題答案

小甲魚python教程第10-12講--python列表內建方法 筆記習題答案

一丶列表BIF
1.獲取元素索引值(索引值從0開始): index()
2.從列表中刪除元素:①remove(引數名字): list.remove(引數名字)
②del del list[1]或者刪除整個列表: del list
③pop() 取出最後一個元素:list.pop() 或者list.pop(1)刪除索引值為1的元素
3.列表分片:一次性獲取多個元素:slice
①list[1:3] 索引值為1,2的元素 list[1:],list[:],list[:3]都可以
二丶列表常用操作符
比較操作符:>,<,==
邏輯操作符:and, or, not
連線操作符:+
重複操作符:*
成員關係操作符:in, not in
三丶列表型別內建函式BIF


dir(list)可以檢視內建函式
①count:元素在列表中出現的次數 list.count(元素名)
②index:索引值 list.index(元素名,起始位置,結束位置)
③reverse:翻轉列表
④sort:從小到大排序 list.sort(reverse=True) 前兩個為預設引數 從大到小排序
⑤append:在list結尾處新增一個元素
⑥extend:可以把一個列表加入一個列表合成一個列表
⑦insert:根據索引插入一個元素 :list.insert(索引,元素)
list1=list[:]與list2=list拷貝的區別:
list1不會跟著list的變化而變化 list2會根據list變化而變化
list1相當於是一個指向list的標籤

習題和答案

1.列表中可以存放一些什麼東西?

他可以存放我們學過的什麼資料型別,mix=[1,2.18,’小孩’,[1.3,’哈哈’]]

2.向列表中增加元素有哪些方法?

BIF內建函式有:insert append extend

3.append()和extend()都是想列表末尾新增元素,請問他們有什麼區別?

append() 方法是將引數作為一個元素增加到列表的末尾。
extend() 方法則是將引數作為一個列表去擴充套件列表的末尾。

4.有列表 name = [‘F’, ‘i’, ‘h’, ‘C’],如果小甲魚想要在元素 ‘i’ 和 ‘h’ 之間插入元素 ‘s’,應該使用什麼方法來插入?

insert:利用name.insert(2,‘s’)

5.member.append([‘竹林小溪’, ‘Crazy迷戀’]) 和 member.extend([‘竹林小溪’, ‘Crazy迷戀’]) 實現的效果一樣嗎?
不一樣
append menber最後變成[….,[‘竹林小溪’, ‘Crazy迷戀’]]
extend member最後變成[….,’竹林小溪’,‘Crazy迷戀’]

1.假設給定以下列表:
member = [‘小甲魚’, ‘黑夜’, ‘迷途’, ‘怡靜’, ‘秋舞斜陽’]
要求將列表修改為:**
member = [‘小甲魚’, 88, ‘黑夜’, 90, ‘迷途’, 85, ‘怡靜’, 90, ‘秋舞斜陽’, 88]
方法一:使用 insert() 和 append() 方法修改列表。
方法二:重新建立一個同名字的列表覆蓋

方法一:
member.insert(1,88)
member.insert(3,90)

member.append(88)
方法二:
member=[‘小甲魚’, 88, ‘黑夜’, 90, ‘迷途’, 85, ‘怡靜’, 90, ‘秋舞斜陽’, 88]

2.用for迴圈列印上邊的列表中的每個內容

member=[‘小甲魚’, 88, ‘黑夜’, 90, ‘迷途’, 85, ‘怡靜’, 90, ‘秋舞斜陽’, 88]

for each in menber:
print(each)

3.請問如何將下邊的列表中‘小甲魚’改為‘小魷魚’

list1 = [1, [1, 2, ['小甲魚']], 3, 5, 8, 13, 18] 
list1[2][3][0]='小魷魚'

4.要對一個列表進行順序排序,請問用什麼方法?

list.sort()

5.要對一個列表進行逆序排序,請問使用什麼方法?

list.sort(reverse=True

6.介紹一下列表內建函式copy和clear的作用?

copy:list1=list.copy(),將list賦值給list1
clear:清空列表

7. 你有聽說過列表推導式或列表解析嗎?

結構:[有關A的表示式 for A in B]

[i**i for i in range(1,10,2)]

結果為[1, 27, 3125, 823543, 387420489]

**list1=[(x,y)for x in range(10)for y in range(10)if x%2==0 if y%2!=0]**

結果為[(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9), (6, 1), (6, 3), (6, 5), (6, 7), (6, 9), (8, 1), (8, 3), (8, 5), (8, 7), (8, 9)]