Info という名前のクラスがあり、Info には文字列型のインスタンス変数があり、Info.getName()
などのインスタンス情報のリストもありますclass_list = [Info('Aleck'), Info('John')]
。
を指定すると、name_list と同じ名前のclass_listname_list = ['Aleck', 'Bob']
の要素を削除したいのですが、名前 (Bob など) が class_list にないかどうかも知る必要があります (たとえば、bob がリストにないことを出力します)
上記の例では、結果は class_list = [Info('John')] になり、bob がリストにないことが出力されます。
次のコードのような醜い方法を知っています(実際には実行していません。単なる例です)、これを行うためのエレガントな方法またはPythonicの方法はありますか?
def removeElement(name_list, class_list):
list_to_be_removed = []
for name in name_list:
is_name_in_list = false
for obj in class_list
if name == obj.getName():
list_to_be_removed.add(obj)
is_name_in_list = true
break
if is_name_in_list == false:
print name + ' is not in the list'
is_name_in_list = false
for obj in list_to_be_removed:
class_list.remove(obj)