零基礎學習Python 作業 第11 12章

2021-08-16 15:04:39 字數 4142 閱讀 1044

**********ch11-12 homework**********

ch11 知識點回顧

主要函式:remove() del pop() slice

member = [1, 2, 3, 4, 5]

member.remove(2) # 這裡移除是考慮移除的物件,不是指標的位置,但是不是移除所有的相同值,移除最前面的

member.pop() # 跟資料結構的棧一樣,從線上往下拿。不指出位置,就先考慮矩陣(列表的)最後一位.

member.pop() # .pop(2) 是指'3', 位置為2, .remove(2) 是指值'2',位置在1

del member # 刪除member

del member[0] # 刪除member第乙個位置的值

#slice

member[1:3] = [2,3,4] # 從位置1到位置3(不包含位置3)

member[1:] = [2,3,4,5]

member[:4] = [1,2,3,4]

member[:] =[1,2,3,4,5]

ch12 知識點回顧

列表使用。dir(list)

list1 = [123,231]

123in list1

true

list1.count()

list1.index(231)

list1.reverse()

0 注意,這道題跟上節課的那道題有點兒不同,回答完請上機實驗或參***。

1.  >>> old = [1, 2, 3, 4, 5]

2. >>> new = old

3. >>> old = [6]

4. >>> print(new)

如果不上機操作,你覺得會列印什麼內容?

answer:[1, 2, 3, 4, 5]

注意下面這個測試,複製盡量選擇slice

這裡主要說明分片「拷貝」,如果用slice是用的直接拷貝,相當於開闢新記憶體

而直接複製則是指向原始記憶體。

但是,如果你修改了b,a也是不會變的。這裡僅處理位置變換

>>> a

[2, 2, 3, 3, 4, 4, 5, 5]

>>> c = b[:]

>>> c

[2, 2, 3, 3, 4, 4, 5, 5]

>>> b.sort(reverse = true)

>>> a

[5, 5, 4, 4, 3, 3, 2, 2]

>>> b

[5, 5, 4, 4, 3, 3, 2, 2]

>>> c

[2, 2, 3, 3, 4, 4, 5, 5]

1 請問如何將下邊這個列表的』小甲魚』修改為』小魷魚』?

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

2 要對乙個列表進行順序排序,請問使用什麼方法?

answer: 使用內建函式sort(), a.sort()

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

answer: 使用內建函式sort(), a.sort(reverse = true)

answer: 先描述想法,copy()美其名曰「複製」,應該可以控制複製的位置和區間;clear()應該和remove()類似

test:

>>>a = [1, 2, 3, 4, 5, 6]

>>>b = a.copy()

b = [1, 2, 3, 4, 5]

>>>a.sort(reverse = true)

b = [1, 2, 3, 4, 5, 6]

a = [6, 5, 4, 3, 2, 1]

>>>c = a.copy(1)

typeerror: copy() takes no arguments (1 given)

>>>c = a.copy()

>>>d = c.clear()

>>>d

>>>d = c.clear(1)

typeerror: clear() takes no arguments (1 given)

總結:clear()直接清除列表,但記憶體空間還在,你可以看到d = ;

copy直接複製列表,而且不會由原來的引起的改變影響,跟切片一樣。

5 你有聽說過列表推導式或列表解析嗎?沒聽過?!沒關係,我們現場來學習一下吧,看表示式:

>>> [ i*i for i in

range(10) ]

你覺得會列印什麼內容?

1.>>> [i*i for i in

range(10)]

2.[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

居然分別列印了0到9各個數的平方,然後還放在列表裡邊了有木有?!

列表推導式(list comprehensions)也叫列表解析,靈感取自函式式程式語言 haskell。

ta 是乙個非常有用和靈活的工具,可以用來動態的建立列表,語法如:

[有關a的表示式 for a in b]

例如1. >>> list1 = [x**2

for x in

range(10)]

2. >>> list1

3. [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

複製**

相當於1. list1 =

2.for x in

range(10):

複製**

問題:請先在 idle 中獲得下邊列表的結果,並按照上方例子把列表推導式還原出來。

1. >>> list1 = [(x, y) for x in

range(10) for y in

range(10) if x%2==0

if y%2!=0]

idle test

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

if y%2!=0]

>>> list1

[(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)]

list1 = 

for x in

range(10):

for y in

range(10):

if x % 2 == 0

and y % 2 != 0:

6 活學活用:請使用列表推導式補充被小甲魚不小心塗掉的部分

name

in list2 if slogan[0] == name[0]]

7 請寫下本節課學到的內容

important: slice, copy, clear. a[:] a.copy() a.clear()

列表推導式:list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]

零基礎學習Python 作業 第9章

ch09 homework 0 下面的迴圈會列印多少次 i love fishc for i in range 0,10,2 print i love fishc?answer 5 次 1 下面的迴圈會列印多少次 i love fishc 1.for i in 5 2.print i love fi...

零基礎學習Python 作業 第13章

ch13 homework 0 請用一句話描述什麼是列表?再用一句話描述什麼是元組?answer 列表 乙個大池子,可以寫入各類資料,可以靈活的讀寫 元組 列表的真子集,或者說加了限制的列表,一旦固定便不能修改 元組只能通過slice拆分成新的元組,再進行拼接,不能進行新增等操作 1 什麼情況下你需...

《零基礎入門學習Python》學習筆記1

第一講 我和python的第一次親密接觸 python輸出語句 print i love python 注意後面沒有分號 python可以直接進行加法乘法等運算,沒有變數型別的限制,比如c語言規定了整型變數不能超過多少位 print i love you 8 自動列印8遍 第二講 用python設計...