2016-10-25 33 views
0

リストの前の要素が2番目のリストにある場合は、'default''custom'に置き換える必要があります。私はより良い解決策とこれを行うためのよりPythonの方法を探しています。大きいpythonリストを比較してリスト要素を置き換えます

for item in base_list: 
    if item[1] in custom_list: 
     item[2] = 'custom' 

custom_list場合、私はそれset作ると思います:

base_list = [[1, 'post', 'default'], 
      [2, 'reply', 'default'], 
      [3, 'register', 'default']] 

custom_list = ['post', 'register'] 


for element in custom_list: 
    for item in base_list: 
     if element == item[1]: 
      item[2] = 'custom' 

print base_list 
>>> [[1, 'post', 'custom'], [2, 'reply', 'default'], [3, 'register', 'custom']] 
+1

を一般的に、あなたのコードが「作品」と何のバグを持っていない場合は、コードの改善に関する質問はcodereview.stackexchange.comに移動させなければなりません – davedwards

答えて

0

あなたは次のようにリスト内包していることを達成することができます:

[[item[0], item[1], 'custom'] if item[1] in custom_list else item for item in base_list] 
# Output: [[1, 'post', 'custom'], [2, 'reply', 'default'], [3, 'register', 'custom']] 
1

私はin演算子を使用すると思います。

関連する問題