Python 楊輝三角__Python

來源:互聯網
上載者:User


今天看到廖雪峰網站上的python教程generator一節,順手做了一下楊輝三角的小練習。要求是寫出一個generator,可以迭代列印出楊輝三角的每一行。

基本思路就是產生初始情況,然後每次按照楊輝三角的計算規則迭代更新list中除去首尾的中間部分。因為計算每項的值時依賴於前一項的計算結果,所以不能想fib數列一樣直接在原list中依次更新值,需要用一個臨時list儲存新一行的值,再替換回原list中。代碼如下:

def triangles():L = [1]n = 0while 1:yield LL.append(1)temp = []for i,item in enumerate(L[:-2]):temp.append(L[i]+L[i+1])L[1:-1] = temp

其實,上面代碼中的for迴圈本質是產生一個temp list,所以python中還可以使用列表產生式對上述代碼做進一步簡化:

def triangles():L = [1]n = 0while 1:yield LL.append(1)L[1:-1] = [item+L[i+1] for i,item in enumerate(L[:-2])]

不得不說,python真的可以寫出很簡潔的代碼,很多c++ java中需要寫好多迴圈才能做的事情,python中一行代碼就搞定了~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.