Python—在迭代期间拆分整数列表

Python—在迭代期间拆分整数列表,python,python-3.x,Python,Python 3.x,我有一个数据数组,在这个数组中,我通过一个三维浮点数数组进行切片,并附加满足一组上限和下限(也是浮点数)的元素数 我的代码的第一部分包含一个嵌套的for循环,其样式如下: x_lst = [] for i in range(len(x1)): for x in range(len(floatarray[0,:,0])): if x1[i] <= floatarray[0,x,0] <= x2[i]: x_lst.append(x)

我有一个数据数组,在这个数组中,我通过一个三维浮点数数组进行切片,并附加满足一组上限和下限(也是浮点数)的元素数

我的代码的第一部分包含一个嵌套的
for
循环,其样式如下:

x_lst = []
for i in range(len(x1)):
    for x in range(len(floatarray[0,:,0])):
        if x1[i] <= floatarray[0,x,0] <= x2[i]:
            x_lst.append(x)
            #issues after this point
我觉得有一种非常简单的方法可以做到这一点,但我还没有想出任何有效的方法(比如在追加后尝试使用
xlst.split()


另外,对这个问题的任何反馈都会很好,因为我对这个问题还是相当陌生的。

似乎下面的方法应该有效:为什么不为每个
I
创建一个中间子列表,并向子列表添加适当的值,然后最后将子列表添加到主列表中

x_lst = []
for i in range(len(x1)):
    inner_list = []  # The sublist to be appended.
    for x in range(len(floatarray[0,:,0])):
        if x1[i] <= floatarray[0,x,0] <= x2[i]:
            inner_list.append(x)  # Add the numbers to the sublist.
            # Issues after this point...
    x_lst.append(inner_list)  # Add the sublist to the main list.
x_lst=[]
对于范围内的i(len(x1)):
内部列表=[]#要追加的子列表。
对于范围内的x(len(floatarray[0,:,0]):

如果x1[i]代码中的所有内容看起来都是正确的,除了附加到一维数组中。为了解决您的问题,您可以简单地更改代码,以便名为temp的临时数组将数据附加到内部循环中,然后将数据附加到外部数组x_lst,如下所示:

x_lst = []

for i in range(len(x1))

temp=[]
for x in range(len(floatarray[0,:,0])):

    if x1[i] <= floatarray[0,x,0] <= x2[i]:

         temp.append(x)

x_lst.append(temp);
x_lst=[]
对于范围内的i(len(x1))
温度=[]
对于范围内的x(len(floatarray[0,:,0]):

如果x1[i]可以,那么Sam的答案在通过迭代添加值方面是正确的,但是用我的代码尝试它会产生
len(i)
列表,其中每个子列表都包含满足
x1
x2
所有元素的
x
值,不是每个列表都包含特定于
x1
x2
[i]
第th元素的值,因此所有子列表都是相同的

我通过用列表理解替换内部的
for
循环来解决这个问题,如下所示,它给出了正确的结果(以所需的形式
x_lst=[[5,6,7,13,14],[21,22,23,36,37],[44,45,
):

x_lst=[]
对于范围内的i(len(x1)):

y=[x表示范围内的x(len(floatarray[0,:,0]),如果x1[i]这些应该是NumPy数组吗?您使用的是列表表示法,但列表不支持您正在进行的索引。在本例中,
floatarray
是一个NumPy数组,因为我必须使用几个NumPy功能来排列数据。谢谢!我知道我缺少了一些东西,但对于它是什么,我有一个完全的心理障碍。当我通过查看结果,我发现相反,这种方法是生成
len(I)
的嵌套列表,每个子列表包含满足所有边界的
x
的所有值,因此我得到
len(I)
完全相同的列表。我想我可以理解为什么我的原始代码会在条件语句中这样做,所以我设法用列表理解替换它以获得所需的结果(参见下面的答案)。
x_lst = []

for i in range(len(x1))

temp=[]
for x in range(len(floatarray[0,:,0])):

    if x1[i] <= floatarray[0,x,0] <= x2[i]:

         temp.append(x)

x_lst.append(temp);
x_lst = []

for i in range(len(x1)):
    y = [x for x in range(len(floatarray[0,:,0])) if x1[i] <= floatarray[0,x,0] <= x2[i]]
    x_lst.append(y)