#欲しかったもの
二つのリストが、同じ種類/個数の要素をもつ場合(≒内容が同じか単に順番を並べ替たものの場合)にTrueを、そうでない場合にFalseを返す関数。
例)
[1,2,3],[3,2,1]=>True
["b","a","r"],["b","e","a","r"]=>False
[1,"two",3],[1,"two",3]=>True
[1,1,1],[1,1,1,1]=>False
検索してもよさげなものを見つけられなかったので、サクっと作りました。こんなん組み込みであるだろJKって方がいましたら教えていただきたいです。
is_reordering
def is_reordering(list1, list2):
list2 = list2[:]
for element in list1:
if element in list2:
list2.remove(element)
else:
return False
if list2:
return False
return True
list1の要素を順番に見て、list2にその要素があったらそれを取り除いているだけです(無かったらFalseを返す)。最後のifで、list2が空になったかを判定しています。これがないと、例)の一番最後のような場合にTrueが返ってしまいます。
車輪の再発明をしてしまった感がすごいですが、とりあえずあげておきます。