2017-05-09 17 views
1

削除されなかったアイテムを新しいリストに追加する方法を知りたい。削除されなかったアイテムを別のリストに追加

challenge = [1, 0, 9, 8, 5, 4, 1, 9, 3, 2, 3, 5, 6, 9] 

def remove_values(thelist, value): 
    newlist = [] 
    while value in thelist: 
     thelist.remove(value) 
     newlist.append() 

bye = remove_values(challenge, max(challenge)) 

たとえば、すべての9(最大)を削除すると、残りの部分を新しいリストに追加するにはどうすればよいですか?

+1

'return [x for thelist in x!= value]'?あるいは、thelistを突然変異させるより深い理由がありますか? – timgeb

+0

forループを試してください – Matt

+0

元のリストを変更する必要がある場合は、 'idx、item in enumerate(thelist):item == value:newlist.append(thelist.pop(idx))' pop() '呼び出しはO(n)毎回ですが –

答えて

0
challenge = [1, 0, 9, 8, 5, 4, 1, 9, 3, 2, 3, 5, 6, 9] 

# This will append every item to a new List where the value not is max 
# You won't need 2 lists to achieve what you want, it can be done with a simple list comprehension 
removed_list = [x for x in challenge if x != max(challenge)] 
print(removed_list) 
# will print [1, 0, 8, 5, 4, 1, 3, 2, 3, 5, 6] 
関連する問題