在嵌套lis中插入和读取多个值

2024-06-26 13:48:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这段代码

def get_vector (vx,vy):
    lst = [[[] for _ in range (len(vx[0]))]for _ in range (len(vx))]
    print (lst[1])
    for x in range (len(lst)):
        for y in range (len(lst[x])):
            print (vx[x,y])
            c = math.sqrt(pow(vx[x,y],2)+pow(vy[x,y],2))
            print (c)
            cos_angle_y= ((pow(vx[x,y],2)) + (pow(c,2)) - (pow(vy[x,y],2))) / 2*vx[x,y]*c
            uhol=math.cos(math.radians(cos_angle_y))
            lst[x][y].append([c,uhol])
    return lst

我的问题是如何访问或保存这些值,以便以后可以从嵌套列表中访问它们。我试过这个,但效果不错,但不是很好。我得到了正确的值,但我不知道如何访问它们。你知道吗

lst = get_vector(vx,vy)
print (lst[0][10])

这是我从print lst[0][10] : [[1.0, 0.9998476951563913]]得到的结果

我需要得到值0.999。。。对于结构中列表之外的另一个变量类似于lst[0][10][2]或其他一些不同的方法(如果可能),有什么建议吗?你知道吗


Tags: inforgetlenrangemathcosprint
2条回答

您只需添加第三个索引位置即可访问这些值。你知道吗

var=lst[0][10][1]

以此类推,以访问嵌套列表中的单个值。记住索引从零开始,所以第二个元素是索引1

因此,我犯的第一个错误是如上所述的索引,尽管索引不是lst[0][10][1],而是lst[0][10][0][1]。我还解决了append创建额外索引的问题,方法是将append更改为insert,并将插入拆分为两个单独的步骤,如下所示

 lst[x][y].insert(0,c)
 lst[x][y].insert(1,uhol)

相关问题 更多 >