Python > itertools > リストの値の全組合せを得る > combinations()

動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04.4 LTS desktop amd64
TensorFlow v1.7.0
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6
gnustep-gui-runtime v0.24.0-3.1
PyMieScatt v1.7.0

星形のFill

geometry > numpy > star shaped (星形) の座標を得る | Matplotlibでの描画 > v0.3:座標は得られた | v0.4: モジュール化

  • 星形の頂点座標が与えられている
  • 星形の内部を塗りつぶりたい

中心から辺の交点を使おうとしている。
頂点座標から辺を取得するには「頂点の組合せ」を使うだろうか。

リストの値の全組合せを得る

itertoolsを使ってみる。
https://docs.python.jp/3/library/itertools.html#itertools.combinations

test_permutation_180415.py
import numpy as np
from itertools import combinations

pi = [3, 1, 4, 1]

perms = []
for aperm in combinations(pi, 2):
    perms += [aperm]

print(perms)

run
$ python3 test_permutation_180415.py 
[(3, 1), (3, 4), (3, 1), (1, 4), (1, 1), (4, 1)]

code v0.2

  • Numpyを使用してなかったため、import numpyを除去
  • 実装内容はcombinationなので、ファイル名を変更
test_combination_180415.py
from itertools import combinations

pi = [3, 1, 4, 1]

perms = []
for aperm in combinations(pi, 2):
    perms += [aperm]

print(perms)

$ python3 test_combination_180415.py 
[(3, 1), (3, 4), (3, 1), (1, 4), (1, 1), (4, 1)]

@LouiS0616 さん
ありがとうございます。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.