簡體   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