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

Python-リストをすべての可能なタプルペアに分割します


リストをすべての可能なタプルペアに分割する必要がある場合は、リストをパラメーターとして受け取り、リスト内包表記を使用してリストを反復処理し、「extend」メソッドを使用するメソッドを定義できます

以下は同じもののデモンストレーションです

def determine_pairings(my_list):
   if len(my_list) <= 1:
      return [my_list]
   result = [[my_list[0]] + element for element in determine_pairings(my_list[1:])]
   for index in range(1, len(my_list)):
      result.extend([[(my_list[0], my_list[index])] + element for element in determine_pairings(my_list[1: index] + my_list[index + 1:])])

   return result

my_list = [56, 31, 78, 0]

print("The list is :")
print(my_list)

my_result = determine_pairings(my_list)

print("The resultant pairs are :")
print(my_result)

出力

The list is :
[56, 31, 78, 0]
The resultant pairs are :
[[56, 31, 78, 0], [56, 31, (78, 0)], [56, (31, 78), 0], [56, (31, 0), 78], [(56, 31), 78, 0], [(56, 31), (78, 0)], [(56, 78), 31, 0], [(56, 78), (31, 0)], [(56, 0), 31, 78], [(56, 0), (31, 78)]]

説明

  • リストをパラメータとして受け取る「determine_pairings」という名前のメソッドが定義されています。

  • リストの長さが1より大きいかどうかがチェックされます。

  • firs要素を除く要素が考慮され、メソッドが再度呼び出されます。

  • これは変数に割り当てられます。

  • リストが再度繰り返され、最初の要素とインデックス要素が変数に追加されます。

  • これは出力として返されます。


  1. Pythonでリストをタプルに変換する方法は?

    タプル関数に渡すだけで、リストをタプルに変換できます。 例 my_list = [1, 2, 3] my_tuple = tuple(my_list) print(my_tuple) 出力 これにより、出力が得られます- (1, 2, 3)

  2. Pythonでリストを均等なサイズのチャンクに分割するにはどうすればよいですか?

    リストを同じサイズのチャンクに分割する最も簡単な方法は、スライス演算子を連続して使用し、最初と最後の位置を固定数だけシフトすることです。 次の例では、12個の要素を含むリストがあります。それぞれ長さ4の3つのリストに分割します l=[10,20,30,40,50,60,70,80,90,100,110,120] x=0 y=12 for i in range(x,y,4): x=i print (l[x:x+4]) [10, 20, 30, 40] [50, 60, 70, 80] [90, 100, 110, 120]