**********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設計...