小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

極簡主義的踐行者:一行python有哪些玩法?

 xiaoyimin 2018-12-13

我最近瀏覽到一個討論,問“一行代碼”可以實現(xiàn)什么。我想這樣的問題簡直就是為Python而生的。于是我自己想了想,決定動手實踐幾個一行Python的操作。

一行Python打印九九乘法口訣。

這個問題我以前就遇到過,不過一直沒動手寫出來。大體的思路就是利用Python的列表生成式,加上循環(huán)嵌套。用字符串的join函數(shù)來控制間隔與換行。本質就是一種矩陣式的行列循環(huán),搞清楚變量的邏輯就沒什么問題。

代碼:

print('\n'.join([' '.join(['{}*{}={}'.format(y,x,x*y)foryinrange(1,x+1)])forxinrange(1,10)]))

得到的效果:

一行Python打印楊輝三角。

其實在論壇里看見有朋友用一行Python打印斐波那契數(shù)列(也就是1,1,2,3,5,8,13……每一項等于前兩項之和),我想,同樣是用一行搞定迭代,何不玩?zhèn)€有難度的?于是我寫了個一行代碼打印楊輝三角,確實挺難的。主體思路還是迭代,利用列表的動態(tài)可變性,在循環(huán)中不斷改變列表值。

代碼:

[print(' '.join(map(str, x)))forxin[[[1]]+[[item.append([1]+[item[i][j]+item[i][j+1]forjinrange(len(item[-1])-1)]+[1]), item][-1][-1]foritemin[ [[1]] ]foriinrange(9)]][]]

得到效果:

一行Python代碼統(tǒng)計詞頻。

其實很想用一個函數(shù)式編程的方法搞定這個問題,不過暫時沒解決出來。只好犯規(guī)調個包,用collections里的Counter來操作一番了。

比如對于一個字符串:

string='Andy Jamesand Andy Smith are fighting with James Smith'

利用代碼:

[print('{}:{}'.format(k, v))fork, vinCounter(string.split(' ')).items()]

得到詞頻統(tǒng)計結果:

一行Python代碼畫心心表白。

代碼是死的,但人是活的,生活總歸要有一些情趣。在網上查到了一個心形表達式后,我想到可以用Python來大致畫出這個形狀。這個代碼簡直有用,想象你在給大妹子慶生的時候發(fā)一段代碼,往IDE里一跑。簡直完美!

代碼:

print('\n'.join([''.join([('BabyILoveU'[(x-y)%10]if( (x*0.04)**2+(y*0.1)**2-1)**3-(x*0.04)**2*(y*0.1)**3

效果圖:

今天嘗試了幾種“一行Python”的技巧,感覺日后還有諸多開發(fā)的空間。下一次我準備以函數(shù)式編程為主題思想,拓展更多的“一行”玩法。

話說回來,雖然Python以簡潔聞名,但是類似的一行代碼,仍然只是茶余飯后的消遣。真正在工作、學習中,代碼可讀性和算法復雜度,比這種強行實現(xiàn)的簡潔要更重要得多。類似本文的一行玩法,在實際工作中絕不推薦嘗試。

內容來自騰訊新聞

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多