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

2つのリストのデカルト積を見つけるPythonプログラム


データl1とl2の2つのリストがあるとします。これら2つのリストのデカルト積を見つける必要があります。 2つのリストが(a、b)と(c、d)のようなものである場合、デカルト積は{(a、c)、(a、d)、(b、c)、(b、d)}になります。 。これを行うには、itertoolsライブラリを使用し、このライブラリにあるproduct()関数を使用します。この関数の戻り値はイテレータです。出力をlist()コンストラクターに渡してリストに変換する必要があります。

したがって、入力がl1 =[1,5,6] l2 =[1,2,9]の場合、出力は[(1、1)、(1、2)、(1、9)、 (5、1)、(5、2)、(5、9)、(6、1)、(6、2)、(6、9)]

これを解決するには、次の手順に従います-

  • x:=product(l1、l2)デカルト積のイテレータを取得する

  • ret:=list(x)xイテレータをリストに変換する

  • retを返す

理解を深めるために、次の実装を見てみましょう

from itertools import product
def solve(l1, l2):
   return list(product(l1, l2))

l1 = [1,5,6]
l2 = [1,2,9]
print(solve(l1, l2))

入力

[1,5,6], [1,2,9]

出力

[(1, 1), (1, 2), (1, 9), (5, 1), (5, 2), (5, 9), (6, 1), (6, 2), (6, 9)]

  1. Pythonで2つの長方形で覆われた総面積を見つけるプログラム

    2D平面内の2つの直線状の長方形でカバーされる総面積を求めたいとします。ここで、各長方形は、図に示すように、左下隅と右上隅によって定義されます。 これを解決するには、次の手順に従います- width_1:=| C-A |、height_1:=| D-B | width_2:=| G-E |、height_2:=| H-F | area:=width_1 * height_1 + width_2 * height_2 (G D)または(H

  2. いいえが2の累乗であるかどうかを調べるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 数nが与えられた場合、与えられた数が2の累乗であるかどうかを確認する必要があります。 アプローチ 入力数を2で割り続けます。つまり、=n/2を繰り返します。 各反復で、n%2がゼロ以外になり、nが1でない場合、nは2の累乗ではないことを確認します。 nが1になると、2の累乗になります。 以下の実装を見てみましょう- 例 def isPowerOfTwo(n):    if (n == 0):       retur