2016-11-21 8 views
0
stb_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] 
passive_boxes_list = [] 
active_boxes_list = set(stb_list) - set(passive_boxes_list) 
print active_boxes_list 

私は2つのリストを持っています。番号はpassive_boxes_listに動的に追加されます(1-16)。Pythonの2セット(リスト)の違い

私はstb_listをどのように差し引くことができますかpassive_box_listからです。例えば

passive_boxes_list = [1 , 2 , 3]その後、active_box_listがあるべき場合:

active_boxes_list = [4, 5,6, 7, 8, 9, 10, 11, 12, 13,14,15,16] 
+0

passive_boxes_listが動的に更新されるたびに何らかのビューが更新されますか? – doctorlove

+3

コードはすでに動作していますか? (潜在的に 'active_boxes_list'を' set'の 'list'に変換することはできますが)どのような振る舞いがより具体的になりますか?実際に動的に更新するものが必要な場合は、関数またはクラスを構築する必要があります。 (また、名前の操作は単に英語の "違い"ではなく "違い"であると思う) –

+0

グローバルまたは他の魔法に依存しない非pythonの量を伴わない他のものと同じ程度の簡潔さ:active_boxes_list - = set(passive_boxes_list) ' –

答えて

-1

あなたはこれを試すことができます。

list = [1,2,3,4,5,6,7] 
bleh=[1,2,3,10] 
for x in bleh: 
    if x in list: 
     del list[list.index(x)] 
print list 
3

あなたはList Comprehension機能を使用する必要があります。
だからあなたのようなものを持っている必要がありますactive_boxes_list = [x for x in stb_list if x not in passive_list]
このヘルプが欲しいです!

+2

OPの' set'コマンドは既に行います仕事のこの部分(よりエレガントに)! –