如何使用Python的map()

Python提供了三个非常有用的全局函数,我们可以用来处理集合:map()、filter()和reduce()。 提示:有时使用列表推导更加合适,而且通常被认为更加“Pythonic”。 map()用于对可迭代的项(如列表)中的每个项运行一个函数,并创建一个具有相同数量项的新列表,但每个项的值可以更改。 下面是一个使用map()将列表中的每个项加倍的示例: numbers = [1, 2, 3] def double(a): return a * 2 result = map(double, numbers) 当函数是一行代码时,通常使用lambda函数: numbers = [1, 2, 3] double = lambda a: a * 2 result = map(double, numbers) 甚至可以内联使用lambda函数: numbers = [1, 2, 3] result = map(lambda a: a * 2, numbers) 原始列表保持不变,map()返回一个具有更新值的新列表。 结果是一个map对象,一个可迭代对象,您需要将其转换为list才能打印其内容: print(list(result)) # [2, 4, 6]

從教學到自己的專案的過程

什麼時候應該從閱讀/觀看教學轉移到實際開始進行專案呢? 有人在Twitter上問我:如何從教學轉移到專案呢? 我覺得這個問題很有趣,因為我相信要真正學會一個技術,你需要用它來建立一些東西。 你不能只是閱讀教學,但是當然,一些教學仍然是必需的。 沒有人天生就會使用某個東西,除非我們被教導如何使用,或者我們深入研究了相關文件,或者在一個特殊情況下,我們瞭解該事物應該如何工作,這是我們在使用開源軟件時可以實際做到的事情(但這比較容易說得比做得好)。 每週我都會定期學習新東西,這是我的工作的一部分。這也是我喜歡做的事情。 學習新知識是我的生計。然後我使用這些知識來創建項目和軟件,或者將這項技術教授給其他人。 但是從學習一些東西到實際構建項目是具有挑戰性的。 在“閱讀/觀看X教學”和“構建下一個Airbnb”之間,沒有明確可見的界線。 教學使你達到比你起點更進階的程度。 但在某個時候,你需要開始一個項目,以跨越到下一個水平: 在“結束教學階段”和“開始項目階段”之間存在著一段神秘的間隔。 通過“項目”,我的意思也是指一個樣本網絡應用程式,用於測試你的想法,不一定是一個大型或最終的項目。 如果不進行項目,你就無法達到那個更高的水平。 著名的格言“讓你成功的東西不會讓你更進一步成功”說得很對。 你會達到遞減回報的點,如果你不停止僅僅閱讀教學,你會開始遺忘那些將要應用的知識,而你將不得不回到閱讀教學的階段: 不管怎樣,你仍然會不斷回到教學中。但是對於在項目開發過程中遇到的特定需求,你需要回顧教學。 你只需要有一個項目的想法。如果你還沒有想法,就去想一想。或者看看我的樣本應用點子清單。 從按照IKEA傢俱的逐步指示開始,到從頭開始建造自己的傢俱難嗎?當然很難。 但如果你從不開始,就永遠不會達到那個點。 給自己一些時間,然後開始做吧。