2017-12-10 18 views
0

外側のリストの中のリスト[1,2,3]を削除します。 私はor isinstance(item, list)を試しましたが、それはうまくいかず、ネストされたリストはまだそこにありました。リスト内のリストを削除する

messy_list = ["a", 2, 3, 1, False, [1, 2, 3]] 

# Your code goes below here 
messy_list.pop(3) 
messy_list.insert(0,1) 

for item in messy_list: 
    if isinstance(item, str) or isinstance(item, bool): 
     messy_list.remove(item) 

messy_list.pop(-1) 

print(messy_list) 

私は、リスト内のリストがありますかどうかを確認するためのより良い方法がなかったかどうかを知り、その後、代わりに.pop(とそれをハードコーディングするので、外側のリストから削除したいと思います-1 )

+0

おそらくリストの理解 'messy_list = [私はmessy_listでない場合はisinstance(i、list)] ' – Dark

+0

@ダークあなたはそれに私を打つ、それを答えたいと思う? –

+0

'またはisinstance(item、list)'私のために働いたので、多分それは別のものでしたか? btwでは、ループしたリストに対して操作を行うことはお勧めしません。代わりにコピーを使用してください。一方は、messy_list [:]: 'の項目のためのものであり、リストの理解と一緒です。 – ahed87

答えて

1

は、すべての内部リストを削除します:

messy_list = ["a", 2, 3, 1, False, [1, 2, 3]] 

cleaned = [item for item in messy_list if not isinstance(item,list)] 

print(cleaned) 

私はあなたのmessy_listのすべてitem Sを検査し、それがリストそのものではない場合のみ、その結果、新しいリストに追加し、リストの内包表記を使用しています。

関連する問題