繁体   English   中英

在python中的for循环内填充列表

[英]Filling a list inside a for loop in python

我试图从两个不同的向量中得出一个向量,如下面的代码所示。 但是,当代码第一次进入for循环时,我在第5行获得了超出范围的异常列表。

我究竟做错了什么?

def get_two_dimensional_vector(speeds, directions):
    vector = []
    for i in range(10):
        if (i % 2 == 0):
            vector[i/2][0] = speeds[i/2]
        else :
            vector[i/2 - 1/2][1] = directions[i/2 - 1/2]

您不能以这种方式使用Python列表。 它不像具有预定义长度的C数组。 如果要添加新元素,则必须使用append方法或其他方法。

除此之外,您还使用了第二个索引,这意味着vector的元素本身甚至在被分配之前就是列表或字典或其他内容。

看来您想将speedsdirections转换为二维列表。 因此,首先,这是循环执行操作的方法。 请注意,尽管代码仍然假定speedsdirections相同,但我已经删除了您使用的固定尺寸假设。

def get_two_dimensional_vector(speeds, directions):
    vector = []
    for i in range(len(speeds)):
        vector.append([speeds[i], directions[i]])
    return vector

speeds = [1, 2, 3]
directions = [4, 5, 6]

v = get_two_dimensional_vector(speeds, directions)
print(v)

现在,用Python的方式做到这一点。

print(zip(speeds, directions))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM