2017-04-19 45 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,刪除,切片和索引。 –