python學習(五)之列表元素的積
- 2020 年 3 月 29 日
- 筆記
前幾天,學完python的列表之後,我們老師留了一道關於列表的題目。幾天後,老師講解習題,很榮幸成為被老師點名講解自己程式碼的其中之一下面把我的想法分享一下。
描述
一個由n(n>1)個數字組成的列表 ls,輸出一個列表lt,其中lt中第i個元素等於ls中除ls[i]之外所有元素的乘積。
輸入輸出示例:
示例 1
[1,2,3,4]
[24,12,8,6]
一個由n(n>1)個數字組成的列表 ls,輸出一個列表lt,其中lt中第i個元素等於ls中除ls[i]之外所有元素的乘積。
輸入輸出示例:
示例 1
[1,2,3,4]
[24,12,8,6]
題目解析:
簡單來說一下本題的意思,就是把列表中的某個元素轉換成除了本身之外的其他元素的乘積,然後在輸出出來,很容易理解吧,然而想要完美的完成它卻不容易。
問題思路:
這道題我想了好久(是在吃晚飯的時候),其實很容易理解。例如第一個元素,除了第一個元素之外的乘積很好計算,利用循環累乘的思想就行了。但第二個元素就不容易了,因為如果繼續累乘的話,那就少了第一個元素,那怎麼辦呢?我們可以把第一個元素刪除,然後放在最後一個元素啊,這樣又和上面的一樣了,這不就很簡單的解決了。(然後,突然發現飯涼了,悲傷,但想出來了辦法還是很高興的。)
程式碼示例:
簡單來說一下本題的意思,就是把列表中的某個元素轉換成除了本身之外的其他元素的乘積,然後在輸出出來,很容易理解吧,然而想要完美的完成它卻不容易。
問題思路:
這道題我想了好久(是在吃晚飯的時候),其實很容易理解。例如第一個元素,除了第一個元素之外的乘積很好計算,利用循環累乘的思想就行了。但第二個元素就不容易了,因為如果繼續累乘的話,那就少了第一個元素,那怎麼辦呢?我們可以把第一個元素刪除,然後放在最後一個元素啊,這樣又和上面的一樣了,這不就很簡單的解決了。(然後,突然發現飯涼了,悲傷,但想出來了辦法還是很高興的。)
程式碼示例:
1 lt=eval(input()) 2 i=0 3 lt1=[] 4 while i<len(lt): 5 sum=1 6 a=lt[0] 7 del lt[0] 8 for j in lt: 9 sum=sum*j 10 lt1.append(sum) 11 lt.append(a) 12 i+=1 13 print(lt1)
(抱歉,程式碼貌似有些簡陋,大家將就著看)
程式碼解析:
前三行就不解釋了,就是列表的輸入,然後先建立一個列表用來存放累乘過後的元素。第四行,循環的次數就是列表中元素的個數。循環里,先給sum設定一個初始值1(累加的話,初始值就是0了),不然會報錯的。
首先我們先把列表中第一個元素賦值給一個變數a,接著刪除列表中第一個元素的,然後就行累乘,並把結果放入新建立列表中,最後我們再把刪除的元素重新加入到原列表中,成為列表最後一個元素。繼續循環,最後輸出新列表,就是我們的結果了。
原創不易,希望您能點個贊。