python - 在进入下一个外部循环增量之前,如何让内部 for 循环一直运行?
问题描述
我正在制作一个我为 uni 项目编写的程序更广泛,在我使用 3x3 矩阵之前,但现在它是一个 15 x 15 矩阵,我想制作一个 for 循环来填充值,而不是我目前有。我已经使这个示例代码更小了,但这是我想要放入 for 循环的内容:
distance_matrix=
[array1[0]-array2[0], array1[1]-array2[0], array1[2]-array2[0], array1[3]-array2[0],array1[4]-array2[0]],
[array1[0]-array2[1], array1[1]-array2[1], array1[2]-array2[1], array1[3]-array2[1],array1[4]-array2[1]],
[array1[0]-array2[2], array1[1]-array2[2], array1[2]-array2[2], array1[3]-array2[2],array1[4]-array2[2]],
[array1[0]-array2[3], array1[1]-array2[3], array1[2]-array2[3], array1[3]-array2[3],array1[4]-array2[3]],
[array1[0]-array2[4], array1[1]-array2[4], array1[2]-array2[4], array1[3]-array2[4],array1[4]-array2[4]]
所以这是一个 5x5 矩阵。如您所见,每个条目的值是 2 个数组中的值之间的差异。我首先想到的循环是一个 2 层嵌套的 for 循环,但它只生成一个 5x1 矩阵,对角线上的值是 (i,i) 值。它看起来像这样:
distance_matrix=[[0 for x in range(0,5)] for y in range(0,5)]
for i range(0,5):
for j in range(0,5):
distance_matrix[i][j]=array1[i]-array2[j]
然后我尝试了一个 if 语句,只是一个我可以重塑的列表,并设置在外循环中的行上保持不变的值,但这再次生成了一个长度为 5 的列表(我真的不知道为什么) :
distance_matrix_list=[]
for col_val in range(0,5):
first_value=array1[col_val]
for row_val in range(0,5)):
if row_val<5):
distance_matrix_list.append([first_value-array2[row_val]])
distance_matrix=np.array(distance_matrix_list)
distance_matrix.reshape((5,5))
这一定很明显,我很沮丧,因为我错过了这一点。请帮忙!
解决方案
您的第一个代码片段,除了一些拼写错误之外应该可以正常工作。但是,在分配索引时,您确实需要切换 i 和 j。这对我来说很好:
distance_matrix=[[0 for x in range(5)] for y in range(5)]
for i in range(5):
for j in range(5):
distance_matrix[i][j] = array1[j] - array2[i]
推荐阅读
- c# - C#如何声明未知方法类型
- javascript - rxjs 6倒数计时器订阅角度6
- java - SimpleDateFormat.parse() 为格式“YYYY/MMM/d”返回不正确的日期
- selenium - DataTable 和 TestRunner 的黄瓜问题给出错误'java.lang.NoClassDefFoundError: io/cucumber/core/options/FeatureOptions'
- laravel-5 - 在 Laravel 5.8 中的查询中插入查询
- javascript - 如何在 Angular 应用程序中导入 npm 模块?
- python - Python for 循环操作列表并删除使用过的元素
- arrays - 将新数组返回/传递给函数(Swift 5)
- amazon-web-services - 如何实现 Amazon Connect -> AWS Kinesis Video Stream -> Lambda -> 在 S3 (Live Streaming) 中保存可听的 .wav
- java - Amazon Corretto 是否支持 JCE?