ขนาดวิดีโอ: 1280 X 720853 X 480640 X 360
แสดงแผงควบคุมโปรแกรมเล่น
เล่นอัตโนมัติ
เล่นใหม่
很清楚的解釋跟範例, 謝謝分享。
感谢支持~
就是函数式编程里的高阶函数用法,列表理解其实也是map,reduce,filter这些高阶函数的语法糖而已
3:20 左右,使用 generator 的速度比起 for-loop 快了一個數量級 (0.0027s vs 0.0367s), 但會不會其實是把一些實際要做事情的消耗往後丟到要使用 generator 的場景下?
你在一般场合下是对的. 因为generator是lazy compute,yield时候是需要才计算,所以这里剩下来的工作其实没有真的省. 但是注意到这段代码的yield几乎没有任何计算,因为是 (i for i in lst) 所以这里主要的开销还是list append的开销, 这部分是完全省下来的. 所以 时间差一个数量级完全差在了list comprehension这里.
当filter的第一个参数只是一个很简单的表达式的时候,写成list comprehension或者generator会更简洁,因为不需要把这个表达式专门定义成一个函数。
都是高级用法,从c过来的人相当于要再学一下数据结构和内置函数
numpy vectorized後應該能更快才對,不過這個可能是另一種optimization方法了
要注意資料形態要相同,我很常混用到int還有float
会更慢,因为例子里要处理的数据太少了🙂
高天,你试试3.12版本的列表推导式,有更多优化可能更快。
3.12把一些常用的comprehension inline了,也就是不单独做一个code object然后call了,省了一个frame。
any,all,map,filter我可以理解为类似JavaScript的 some,every,map,filter吗?
表示拿著整大段for loop去問bito或者任何GPT,叫它用array function簡化程式,都會得出map, filter等使用方法
讲的挺好,鼓励
lst =[list = range(1, 100)]
學到了學到了,邏輯很清晰之前都知道這些函式,卻不是很清楚什麼時候用,這樣舉例就非常明顯了
这几个和javascript里的filter some every map差不多
list comprehension can be a big hole for python beginner causing performance degradation
我以為講道這類功能,itertols不該錯過的XD
写了很多年的python都还是不行啊。看您的视频如醍醐灌顶
講得很仔細 適合入門 推
未看影片之前以為你是說用vectorization代替loop完全猜錯了😂不過溫故知新謝謝你的影片訂閱了
語法糖學會當然好,但學不會/不想用也無傷大雅。
generator, any, all, filter, map, zip
讲得不错!
介紹的很詳細
直接any(last > 50)这样可以吗?
不行,last(你是想说list吧?)不能直接跟一个数比较
list效率还是太低了,不如先分配好然后index填数,还更方便并行
不如用C++ 用Python還考慮效率…
@@whity2508 “只有肉人,没有肉车”
😥很像gpt给我生成的代码
太複雜了 我還是寫c的recursive function吧
不虧是python 高階語言總是有讓人想不到的高階寫法 就我一個C++母語的人跑去寫python還真的就會用with for的寫法=w=
花那么多时间研究怎么在python里面做optimization,我觉得还不如直接用c++写来的快
我只會第一個 for,不過缺點也很明顯,只適用單行,多行的情況就無法簡潔化
可以把要做的事寫成一個 function
邏輯先搞明白在求簡化程式碼
zip真的好用
捉个小虫 tuple 念错了
只讲Python吗
其实本体还是for,只是一个是你自己写的,另一个是别人写好的。
一个是 python 层一个是 C 层
@@yannnzhou7400 jit 运行时还是for loop
我倾向于使用共性
实践中注意可读性...
有些formatter 會幫他換行 如果不做太多操作的話是還行
這種寫法沒什麼問題看不懂是自己的問題
你沒看過不代表別人不會
@@rogerroan7583 初学者都有迷之自信, 实际工作中一秒懂和两秒懂给人的挫折感比你想象的大得多
@@g83.07 初学者都有迷之自信, 实际工作中一秒懂和两秒懂给人的挫折感比你想象的大得多 另外你的阅读理解能力 也许需要练习很多年才能达到普通人的水平
语法糖
应该成功开通收益功能了,恭喜
讚讚
写代码,少用语法糖…
少寫的問題是很難懂, 很難維護
想快還用py😂可讀性差在公司別人接手會想打你
很清楚的解釋跟範例, 謝謝分享。
感谢支持~
就是函数式编程里的高阶函数用法,列表理解其实也是map,reduce,filter这些高阶函数的语法糖而已
3:20 左右,使用 generator 的速度比起 for-loop 快了一個數量級 (0.0027s vs 0.0367s), 但會不會其實是把一些實際要做事情的消耗往後丟到要使用 generator 的場景下?
你在一般场合下是对的. 因为generator是lazy compute,yield时候是需要才计算,所以这里剩下来的工作其实没有真的省. 但是注意到这段代码的yield几乎没有任何计算,因为是 (i for i in lst) 所以这里主要的开销还是list append的开销, 这部分是完全省下来的. 所以 时间差一个数量级完全差在了list comprehension这里.
当filter的第一个参数只是一个很简单的表达式的时候,写成list comprehension或者generator会更简洁,因为不需要把这个表达式专门定义成一个函数。
都是高级用法,从c过来的人相当于要再学一下数据结构和内置函数
numpy vectorized後應該能更快才對,不過這個可能是另一種optimization方法了
要注意資料形態要相同,我很常混用到int還有float
会更慢,因为例子里要处理的数据太少了🙂
高天,你试试3.12版本的列表推导式,有更多优化可能更快。
3.12把一些常用的comprehension inline了,也就是不单独做一个code object然后call了,省了一个frame。
any,all,map,filter我可以理解为类似JavaScript的 some,every,map,filter吗?
表示拿著整大段for loop去問bito或者任何GPT,叫它用array function簡化程式,都會得出map, filter等使用方法
讲的挺好,鼓励
lst =[list = range(1, 100)]
學到了學到了,邏輯很清晰
之前都知道這些函式,卻不是很清楚什麼時候用,這樣舉例就非常明顯了
这几个和javascript里的filter some every map差不多
list comprehension can be a big hole for python beginner causing performance degradation
我以為講道這類功能,itertols不該錯過的XD
写了很多年的python都还是不行啊。看您的视频如醍醐灌顶
講得很仔細 適合入門 推
未看影片之前以為你是說用vectorization代替loop
完全猜錯了😂
不過溫故知新
謝謝你的影片
訂閱了
語法糖學會當然好,但學不會/不想用也無傷大雅。
generator, any, all, filter, map, zip
讲得不错!
介紹的很詳細
直接any(last > 50)这样可以吗?
不行,last(你是想说list吧?)不能直接跟一个数比较
list效率还是太低了,不如先分配好然后index填数,还更方便并行
不如用C++ 用Python還考慮效率…
@@whity2508 “只有肉人,没有肉车”
😥很像gpt给我生成的代码
太複雜了 我還是寫c的recursive function吧
不虧是python 高階語言總是有讓人想不到的高階寫法 就我一個C++母語的人跑去寫python還真的就會用with for的寫法=w=
花那么多时间研究怎么在python里面做optimization,我觉得还不如直接用c++写来的快
我只會第一個 for,不過缺點也很明顯,只適用單行,多行的情況就無法簡潔化
可以把要做的事寫成一個 function
邏輯先搞明白在求簡化程式碼
zip真的好用
捉个小虫 tuple 念错了
只讲Python吗
其实本体还是for,只是一个是你自己写的,另一个是别人写好的。
一个是 python 层一个是 C 层
@@yannnzhou7400 jit 运行时还是for loop
我倾向于使用共性
实践中注意可读性...
有些formatter 會幫他換行 如果不做太多操作的話是還行
這種寫法沒什麼問題看不懂是自己的問題
你沒看過不代表別人不會
@@rogerroan7583 初学者都有迷之自信, 实际工作中一秒懂和两秒懂给人的挫折感比你想象的大得多
@@g83.07 初学者都有迷之自信, 实际工作中一秒懂和两秒懂给人的挫折感比你想象的大得多 另外你的阅读理解能力 也许需要练习很多年才能达到普通人的水平
语法糖
应该成功开通收益功能了,恭喜
讚讚
写代码,少用语法糖…
少寫的問題是很難懂, 很難維護
想快還用py😂
可讀性差在公司別人接手會想打你