python學習(五)之列表元素的積


  前幾天,學完python的列表之后,我們老師留了一道關於列表的題目。幾天后,老師講解習題,很榮幸成為被老師點名講解自己代碼的其中之一下面把我的想法分享一下。
描述
一個由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,接着刪除列表中第一個元素的,然后就行累乘,並把結果放入新建立列表中,最后我們再把刪除的元素重新加入到原列表中,成為列表最后一個元素。繼續循環,最后輸出新列表,就是我們的結果了。
原創不易,希望您能點個贊。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM