2017-10-20 121 views
-3

我試圖讓一個「x」字符通過一個列表,從一個索引到另一個索引,然後一遍又一遍地返回。我想知道是否可以使它保持不變,這樣在Python shell中我只能看到一個帶有移動x的列表。 我試着用這段代碼來做這件事,但我很確定必須有其他方式來做到這一點。 對不起,我是新人,不太瞭解。
希望你的幫助,謝謝。python lists:IndexError:列表分配索引超出範圍


def vec(): 


    vec=[] 
    z=0 
    x="x" 
    e=" " 
    y=1 

    while (x=="x"): 
     while (y<=98): 

      vec[z]= e 
      z=z+1 
      vec[y]=x 
      y=y+1 

    vec[y]= e 
    w=98 

    m=99 

    while (m>0): 
     vec[m]= e 
     vec[w]= x 
     w=w-1 
     m=m-1 
+0

術語說明:術語向量在Python中不常用,而是稱爲'list'對象。此外,*總是*使用通用的python標籤,並且如果您的問題或問題是版本特定的,則只使用特定版本,但始終包含通用標籤。 –

+4

可能重複的[IndexError:列表分配索引超出範圍](https://stackoverflow.com/questions/5653533/indexerror-list-assignment-index-out-of-range) –

+1

我會建議,如果你可以縮進代碼正確,否則它不可讀。空格在python中很重要。另外,解釋你在代碼中要做什麼。 – shunya

回答

0

你所得到的索引超出範圍,因爲你的「VEC」列表中具有零個元素。你需要以某種方式初始化它。一種方法是做類似的事情:

vec = [e] * 100 

這將創建一個100個元素的列表,每個元素初始化爲e的值。