[英]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.