2015-10-06 113 views
1

我試圖生成一個100個三角形數字的列表。這是我生成100個三角形數字的原因。當我運行它時,我得到100個列表,如何將它更改爲用100個元素生成一個列表?用多個元素生成一個列表

def Triangular(): 
    n=0 
    while n<101: 
     n=1+n 
     triangleNumbers = (n*(n+1))//2 
     print ([triangleNumbers]) 
Triangular() 

Desired Result: [1,3,6,..] 
Actual Result: 
[1] 
[3] 
[6] 
[10] 
[15] 
[21] 
[28] 
... 

回答

0

您需要difine列表,並使用該列表metohds來幫助你,下面的代碼應該解決您的問題。

def Triangular(): 
     n=0 
     result=[] 
     while n<101: 
      n=1+n 
      triangleNumbers = (n*(n+1))//2 
      result.append(triangleNumbers) 
      print result 
    Triangular() 
0
print ([triangleNumbers]) 

看看上面的語句。

您正在創建一個新列表,而不是添加到列表中。

>>print (type([triangleNumbers])) 
<type 'list'> 

相反,

  • 初始化一個空列表。
  • 在每次迭代中將triangleNumbers附加到list

示例代碼:

lst=[] 
def Triangular(): 
    n=0 
    while n<101: 
     n=1+n 
     triangleNumbers = (n*(n+1))//2 
     lst.append(triangleNumbers) 
    print lst 

Triangular() 
0

爲了使它更Python,你可以使用一個列表理解

def Triangular(upto): 
    lst = [(n*(n+1))//2 for n in range(1,upto)] 
    print lst 

個人而言,我會想辦法讓函數返回的列表只,然後讓來電打印結果

def Triangular(upto): 
    return [(n*(n+1))//2 for n in range(1,upto)] 

lst = Triangular(101) 
print lst 
0

你可以這樣做s太:

lis =[] 
for n in range(100): 
    lis.append((n*(n+1))//2) 

print (lis) 
相關問題