[課后作業] 第012講:列表:一個打了激素的數組3 | 課后測試題


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

  1. >>> old = [1, 2, 3, 4, 5]
  2. >>> new = old
  3. >>> old = [6]
  4. >>> print(new)
復制代碼

如果不上機操作,你覺得會打印什么內容?
  
   
1. 請問如何將下邊這個列表的'小甲魚'修改為'小魷魚'?

  1. list1 = [1, [1, 2, ['小甲魚']], 3, 5, 8, 13, 18]
復制代碼


  
2. 要對一個列表進行順序排序,請問使用什么方法?
  
  
3. 要對一個列表進行逆序排序,請問使用什么方法?
  
  
4. 列表還有兩個內置方法沒給大家介紹,不過聰明的你應該可以自己摸索使用的門道吧:copy() 和 clear()
  
  
5. 你有聽說過列表推導式或列表解析嗎?
  
沒聽過?!沒關系,我們現場來學習一下吧,看表達式:

  1. >>> [ 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):
  3.     list1.append(x**2)
復制代碼


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

  1. >>> list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
復制代碼



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

 
7. 請寫下這一節課你學習到的內容:格式不限,回憶並復述是加強記憶的好方式!
  

 

答案


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM