return 给定号码的列表
return a list for the given number
我知道如何使用追加将项目分配给空数组:
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 例如,我会得到它因为 alawys 数组可能与 c 和 c++ 之类的索引进行比较,第二个在新方法中,如果我在方法之前定义 matri=[] 就像我在追加方式中所做的那样,它将不起作用:
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
),但是如果你有一个完整的列表(其长度可能大于一个),将它追加到一去。例如,您的 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
这里,matri
是matr_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
(请记住,+=
只是 =
和 +
的快捷方式)。所以 Python 可以合理地假设 matri
是一个全局变量,或者它可以合理地假设您打算在函数内部创建一个新的局部变量。为了避免 action-at-a-distance 错误,Python 做出保守的选择,假设您的意思是 matri
是一个新的局部变量。由于在这种情况下您的意图相反,因此只需使用 global
关键字。
matri=[]
def matr_meth(n):
global matri
for i in range(1,n+1):
matri += [i]
return matri
def matr_meth(n):
matri=[]
for i in range(1,n+1):
matri += [i]
return matri
您将matri=[]
初始化为一个空列表,这是一个列表。 [i]
也是一个列表。如果在两个列表之间应用 +
运算符,实际上是将第二个列表附加到第一个列表。
在 for 循环中,您将每个 [i]
附加到 matri
。 matri
在for循环中不断变化。可以使用打印功能查看。
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)
输出:
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]
我知道如何使用追加将项目分配给空数组:
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 例如,我会得到它因为 alawys 数组可能与 c 和 c++ 之类的索引进行比较,第二个在新方法中,如果我在方法之前定义 matri=[] 就像我在追加方式中所做的那样,它将不起作用:
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
),但是如果你有一个完整的列表(其长度可能大于一个),将它追加到一去。例如,您的 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
这里,matri
是matr_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
(请记住,+=
只是 =
和 +
的快捷方式)。所以 Python 可以合理地假设 matri
是一个全局变量,或者它可以合理地假设您打算在函数内部创建一个新的局部变量。为了避免 action-at-a-distance 错误,Python 做出保守的选择,假设您的意思是 matri
是一个新的局部变量。由于在这种情况下您的意图相反,因此只需使用 global
关键字。
matri=[]
def matr_meth(n):
global matri
for i in range(1,n+1):
matri += [i]
return matri
def matr_meth(n):
matri=[]
for i in range(1,n+1):
matri += [i]
return matri
您将matri=[]
初始化为一个空列表,这是一个列表。 [i]
也是一个列表。如果在两个列表之间应用 +
运算符,实际上是将第二个列表附加到第一个列表。
在 for 循环中,您将每个 [i]
附加到 matri
。 matri
在for循环中不断变化。可以使用打印功能查看。
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)
输出:
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]