[英]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
的元素本身甚至在被分配之前就是列表或字典或其他内容。
看来您想将speeds
和directions
转换为二维列表。 因此,首先,这是循环执行操作的方法。 请注意,尽管代码仍然假定speeds
和directions
相同,但我已经删除了您使用的固定尺寸假设。
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.