2017-10-20 60 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的值。