2017-04-19 92 views
0

尝试在不更改原始列表的ID的情况下获取列表,并且列表中只能包含每个元素之间的空格。如何在追加时使列表的ID保持不变

我不断收到这个错误,我无法找到一种方法来保持其ID相同,同时在打印出每个元素之间只有空格。

newlist=[array[x] for x in range(len(array)) if x !=0] 
    array=[] 
    array.append(newlist) 
    newlist=[] 
    print(' '.join(array)) 

类型错误:序列项0:预计STR例如,列表中找到

错误消息是最后一行

while ans: 


    ans=input("\nSelect an option?\n") 

    if ans=="A": 
     if len(array) < 10: 
      A = list(input('\nInput string: \n')) 
      if len(A) == 1 and str(A): 
       array += A 
      if len(array) == 10: 
       print("Invalid input\n") 

    elif ans=="P": 
     print(' '.join(array)) 

    elif ans=="N": 

     newlist=[array[x] for x in range(len(array)) if x !=0] 
     array=[] 
     array.append(newlist) 
     newlist=[] 
     print(' '.join(array)) 


    elif ans=="M": 
     print(id(array)) 

这是半码的样子。

我打算是ID应该始终保持不变,当N被输入所述阵列的所述第一元素被删除

没有用弹出德尔的除去切片索引被允许

+1

'array'在列表理解语句之前是否有一个前值?如果没有,你在定义之前使用'array' –

回答

0

那么“清除”呢? :) Python 3.3及更高版本

elif ans=="N": 

    newlist=[array[x] for x in range(len(array)) if x !=0] 
    array.clear() 
    array.extend(newlist) 
    print(' '.join(array)) 
+0

N输入应该删除数组的第一个元素,同时保持ID相同 –

+0

更新我的回答 – shomel

+0

啊,我忘了提及我不能使用pop,del,删除,切片和索引。 –