プログラミングにおけるリストの内容比較

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

プログラミングにおいては、2つのリストが同じ要素を含んでいるかどうかを順序に関係なくチェックする必要がよくあります。これは、2つのデータセットが同じ値を持っているかどうかをチェックしたり、関数が期待される出力を返しているかどうかを検証するなど、さまざまな状況で役立ちます。このチャレンジでは、2つのリストが同じ内容を持っているかどうかをチェックする関数を書きます。

2つのリストが同じ内容を持っているかどうかをチェックする

2つのリストを引数として受け取り、それらが同じ内容を持っている場合はTrueを返し、そうでない場合はFalseを返す関数have_same_contents(a, b)を書きます。この関数は、2つのリストが同じ要素を含んでいるかどうかを順序に関係なくチェックする必要があります。

この問題を解決するには、次の手順を辿ることができます。

  1. 両方のリストの組み合わせにset()を使用して、一意の値を見つけます。
  2. 各リストの各一意の値のcount()を比較しながら、forループでそれらを反復処理します。
  3. どの要素についてもカウントが一致しない場合はFalseを返し、そうでない場合はTrueを返します。
def have_same_contents(a, b):
  for v in set(a + b):
    if a.count(v)!= b.count(v):
      return False
  return True
have_same_contents([1, 2, 4], [2, 4, 1]) ## True

まとめ

このチャレンジでは、2つのリストが同じ内容を持っているかどうかを順序に関係なくチェックする方法を学びました。set()関数を使用して一意の値を反復処理することで、両方のリストの各要素のcount()を比較して、同じ内容を持っているかどうかを判断することができます。