簡體   English   中英

返回給定數字的列表

[英]return a list for the given number

我知道如何使用 append 將項目分配給空數組:

matri=[]
def matr_meth(n):
 
  for i in range(1,n+1):
    matri.append(i)
  return matri  

print(matr_meth(6))

但是在這里我看到了另一種我不明白的方法,我們如何將索引分配給數組matri + = [i]的名稱,如果matri [i] = i + 1 for exaple cuz alawys數組進行比較,我會得到它索引像 c 和 c++ 可能,第二個在新方法中,如果我在方法之前定義 matri=[] 它將不起作用,就像我在 Z9516DFB15F51C7EE19A4D46B8C0DBE1D 方法中所做的那樣:

def matr_meth(n):
  matri=[]
  for i in range(1,n+1):
    matri +=[i]
  return matri  

print(matr_meth(6))

您在這里偶然發現了兩個相關但截然不同的問題。 讓我們從第一個開始。 [i]本身不是數組下標運算符。 這是一個包含一個元素的列表。 所以

matri += [i]

真的只是

matri = matri + [i]

或者,更詳細地說,

my_temporary_list = [i]
matri = matri + my_temporary_list

+在列表上定義為連接。 所以這只是將兩個列表放在一起的一種更好的方式。 在這個例子中它並不是很有用(如果我只有一個元素要附加,我肯定會使用.append ),但是如果你有一個完整的列表(其長度可能大於一個),那么將它放在一個 append 中更快 Z3484D1F91BFBA75A 例如,你的for循環

for i in range(1,n+1):
  matri +=[i]

實際上可以寫成

matri += range(1, n + 1)

+= on list可以將任何可迭代對象(例如range )作為參數。

現在回答你的第二個問題。

def matr_meth(n):
  matri=[]
  for i in range(1,n+1):
    matri += [i]
  return matri

這里, matrimatr_meth中的一個局部變量。

matri=[]
def matr_meth(n):
  for i in range(1,n+1):
    matri.append(i)
  return matri

這里, matri是一個全局變量,簡單明了。 它變得模糊的地方是

matri=[]
def matr_meth(n):
  for i in range(1,n+1):
    matri += [i]
  return matri

現在我們在matri的內部和外部分配矩陣(請記住, +=只是=+一起的快捷方式)。 所以matri可以合理地假設矩陣是一個全局變量,或者它可以合理地假設您打算在 function 中創建一個新的局部變量。 為了避免遠距離動作錯誤, matri做出保守的選擇,假設您的意思是矩陣是一個新的局部變量。 由於您在這種情況下打算相反,因此只需使用global關鍵字。

matri=[]
def matr_meth(n):
  global matri
  for i in range(1,n+1):
    matri += [i]
  return matri

Python 中的列表支持加法運算符:

>>> [1, 2, 3] + [4, 5]
[1, 2, 3, 4, 5]

使用該循環,您可以使用單元素列表有效地擴展matri列表,即:

| i | matri           | [i] | matri + [i]                  |
| - | --------------- | --- | ---------------------------- |
| 1 | []              | [1] | [] + [1]                     |
| 2 | [1]             | [2] | [1] + [2]                    |
| 3 | [1, 2]          | [3] | [1, 2] + [3]                 |
...
| 6 | [1, 2, 3, 4, 5] | [6] | [1, 2, 3, 4, 5] + [6]        |
def matr_meth(n):
  matri=[]
  for i in range(1,n+1):
    matri += [i]
  return matri  

您將matri=[]初始化為一個空列表,它是一個列表。 [i]也是一個列表。 如果在兩個列表之間應用+運算符,它本質上是將第二個列表附加到第一個列表。

在 for 循環中,您將每個[i]附加到matri matri在 for 循環中不斷變化。 您可以使用打印 function 來查看它。

def matr_meth(n):
  matri=[]
  for i in range(1,n+1):
    matri += [i] 
    print('At the '+str(i)+'-th iteration, matri is: ' )
    print(matri)      
  return matri  


matr_meth(6)

Output:

At the 1-th iteration, matri is: 
[1]
At the 2-th iteration, matri is: 
[1, 2]
At the 3-th iteration, matri is: 
[1, 2, 3]
At the 4-th iteration, matri is: 
[1, 2, 3, 4]
At the 5-th iteration, matri is: 
[1, 2, 3, 4, 5]
At the 6-th iteration, matri is: 
[1, 2, 3, 4, 5, 6]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM