Python中:如何在嵌套在for循环中的if语句中使用索引号?

Python中:如何在嵌套在for循环中的if语句中使用索引号?,python,for-loop,if-statement,Python,For Loop,If Statement,我的问题是,我有一个模拟数据集,它包含两个向量。因此,我有一个向量vX和一个向量vY。我给出的问题是一个类似于我的问题的示例,因为我的主代码太长。它是作为函数编写的,因为这是我最终需要的 现在的问题是向量是有序的。所以元素vX[0]应该对应于vY[0],依此类推。我的想法是,我需要所有属于某个区间的vX元素,获取它们的索引号,并用相应的vY值填充一个新向量 到目前为止,我已经写了以下内容: vX = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] vY = [2, 14, 25,

我的问题是,我有一个模拟数据集,它包含两个向量。因此,我有一个向量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]。
希望有人理解这个问题,能够帮助我。先谢谢你

使用
枚举

Ex:

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]
对于numpy:

# -*- coding: utf-8 -*-

import numpy as np

vX = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
vY = [2, 14, 25, 12, 3, 52 , 5, 10, 7, 19]

vX = np.asarray(vX)
vy = np.asarray(vY)

vN_ids = np.where((vX >= 3) & (vX <= 6))[0]

vN = vY[vN_ids[0]:vN_ids[-1]]

print (vN)
#-*-编码:utf-8-*-
将numpy作为np导入
vX=[1,2,3,4,5,6,7,8,9,10]
vY=[2,14,25,12,3,52,5,10,7,19]
vX=np.asarray(vX)
vy=np.asarray(vy)

vN_id=np。其中((vX>=3)和(vX)如果I在范围(3,6)
中,我将用
如果3替换

# -*- coding: utf-8 -*-

import numpy as np

vX = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
vY = [2, 14, 25, 12, 3, 52 , 5, 10, 7, 19]

vX = np.asarray(vX)
vy = np.asarray(vY)

vN_ids = np.where((vX >= 3) & (vX <= 6))[0]

vN = vY[vN_ids[0]:vN_ids[-1]]

print (vN)