我的问题是关于我有一个模拟数据集,其中包含两个向量。因此,我有一个向量 vX 和一个向量 vY。我给出的问题是一个类似于我的问题的例子,因为我的主要代码太长了。它被写成一个函数,因为这就是我最终需要的。
当前的问题是我的向量是有序的。因此元素 vX[0] 应该对应于 vY[0],依此类推。我的想法是,我需要 vX 中属于某个区间的所有元素,获取它们的索引号,并用相应的 vY 值填充一个新向量。
到目前为止我已经写了这个:
vX = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
vY = [2, 14, 25, 12, 3, 52 , 5, 10, 7, 19]
vN = []
def(rndf(X, Y)):
for i in X:
if i in range(3, 6):
vN.append(vY[i])
else:
vN = vN
vnY = rndf(vX, vY)
在这种情况下,if 语句仅适用于 vX = 3、4 和 5。然后我希望在 vN 向量中获得 vY 的相应值,即 vN = [25, 12, 3]。 希望有人理解这个问题并能够帮助我。先感谢您。
最佳答案
使用枚举
例如:
vX = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
vY = [2, 14, 25, 12, 3, 52 , 5, 10, 7, 19]
def rndf(X, Y):
vN = []
for ind, i in enumerate(X):
if 3 <= i < 6: #better approach as mentioned by FHTMitchell
vN.append(vY[ind])
return vN
vnY = rndf(vX, vY)
print( vnY )
输出:
[25, 12, 3]
关于python - 在Python中: How to use the index number in an if-statement that is nested in a for-loop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50798861/