Python
 Computer >> コンピューター >  >> プログラミング >> Python

タプルのリストの2番目のタプル値を照合することによるPythonグループ


このチュートリアルでは、2番目の要素と同じ要素を持つリストからすべてのタプルをグループ化するプログラムを作成します。それを明確に理解するために例を見てみましょう。

入力

 [('Python'、'tutorialspoints')、('Management'、'other')、('Django'、'tutorialspoints')、('React'、'tutorialspoints')、('Social'、 'その他')、('ビジネス'、'その他')] 

出力

 {'tutorialspoint':[('Python'、'tutorialspoints')、('Django'、'tutorialspoints')、('React'、'tutorialspoints')]、'other':[('Management'、 'other')、('Social'、'other')、('Business'、'other')]} 

リストからタプルをグループ化する必要があります。問題を解決するための手順を見てみましょう。

  • 必要なタプルを使用してリストを開始します。
  • 空の辞書を作成します。
  • タプルのリストを繰り返し処理します。
    • タプルの2番目の要素が辞書にすでに存在するかどうかを確認します。
    • すでに存在する場合は、現在のタプルをリストに追加します。
    • それ以外の場合は、現在のタプルのリストを使用してキーを初期化します。
  • 最後に、必要な変更を加えた辞書を入手します。

#tuplestuplesでリストを初期化=[('Python'、'tutorialspoints')、('Management'、'other')、('Django'、'tialspoints')、('React'、'tutorialspoints') 、('Social'、'other')、('Business'、'other')]#empty dictresult ={}#タプル内のタプルのタプルのリストを反復処理:#タプル内のタプル要素をチェックif tup [1 ] in result:#現在のタプルをdict result [tup [1]]。append(tup)に追加しますelse:#リストresult [tup [1]] =[tup]#priting the resultprint(result)<でキーを開始します/ pre> 

出力

上記のコードを実行すると、次の結果が得られます。

 {'tutorialspoints':[('Python'、'tutorialspoints')、('Django'、'tutorialspoints(' React'、' tutorialspoints')]、' other':[(' Management'、' other ' )、('Social'、'other')、('Business'、'other')]} 

ifはスキップします defaultdictを使用した上記のプログラムの条件 。 defaultdictを使用して解決しましょう 。

#collectionsfromcollectionsからdefaultdictをインポートするimportdefaultdict#tuplestuplesでリストを初期化=[('Python'、'tutorialspoints')、('Management'、'other')、('Django'、'tialspoints')、( 'React'、'tutorialspoints')、('Social'、'other')、('Business'、'other')]#defaultdictresult =defaultdict(list)#を使用した空のdictタプル内のtupのタプルのリストを反復処理: result [tup [1]]。append(tup)#結果のpriting print(dict(result))

出力

上記のコードを実行すると、次の結果が得られます。

 {'tutorialspoints':[('Python'、'tutorialspoints')、('Django'、'tutorialspoints(' React'、' tutorialspoints')]、' other':[(' Management'、' other ' )、('Social'、'other')、('Business'、'other')]} 

結論

あなたはあなたが好きな方法でそれを異なって解決することができます。ここでは2つの方法を見てきました。チュートリアルで疑問がある場合は、コメントセクションでそれらについて言及してください。


  1. なぜPythonはリスト内のリストではなくリスト内のタプルを返すのですか?

    Pythonは、一部のデータを返すときにデータを変更しないことを期待しています。タプルもリストよりも高速です。タプルは通常、順序と位置が意味があり、一貫している場合に使用されます。したがって、たとえば、Pythonにデータベースドライバーがあり、いくつかのデータをクエリする場合、ドライバーはデータを取得し、それを変更せずに使用することを期待しているため、タプルのリストが返される可能性があります。これにより、データがクエリしたフィールドと同じ順序になることも保証されます。

  2. Pythonタプル要素の値を更新するにはどうすればよいですか?

    Pythonタプルは不変オブジェクトです。したがって、それを更新しようとする操作は許可されません。ただし、次の回避策を使用できます。 まず、組み込み関数list()を使用してタプルをリストに変換します。アイテムをいつでも更新して、特定のインデックスの要素に新しい値を割り当てるオブジェクトを一覧表示できます。次に、別の組み込み関数tuple()を使用して、このリストオブジェクトをタプルに変換し直します。 >>> T1=(10,50,20,9,40,25,60,30,1,56) >>> L1=list(T1) >>> L1[5]=100 >