-2

Pythonで手を試し始めたばかりで、いくつかのポインターが必要です。

特定のパラメータに基づいて組み合わせを生成しようとしています。

基本的、

parm1 = ['X1','X2']
parm2 = ['Y1','Y2']

このことから得たいことは

['X1','Y1','X1','Y1']
['X1','Y1','X1','Y2']
['X1','Y1','X2','Y1']
['X1','Y1','X2','Y2']

バイナリリスト(itertools.product( "01"、repeat = 4))を使用して、各要素を置き換えることができると思いました.

0 0 0 0
0 0 0 1

表すだろう

X1 Y1 X1 Y1
X1 Y1 X1 Y2

これを行う最適な方法は何ですか?

編集:もっと情報を追加してみましょう。

Colour = ['Black','White']
Type = ['Car','Bike']

だから、私はこれを次のようにフォーマットしようとしています

                       ('Colour','Type','Colour','Type')
('0', '0', '0', '0')-->('Black','Car','Black','Car')
('0', '0', '0', '1')-->('Black','Car','Black','Bike')
('0', '0', '1', '0')-->('Black','Car','White','Car')
('0', '0', '1', '1')-->('Black','Car','White','Bike')
('0', '1', '0', '0')
('0', '1', '0', '1')
('0', '1', '1', '0')
('0', '1', '1', '1')
('1', '0', '0', '0')
('1', '0', '0', '1')
('1', '0', '1', '0')
('1', '0', '1', '1')
('1', '1', '0', '0')
('1', '1', '0', '1')
('1', '1', '1', '0')
('1', '1', '1', '1')-->('White','Bike','White','Bike')

リストのインデックスごとに if ステートメントを使用してこれを実行できることはわかっていますが、別の方法はありますか?

もう一度編集:

私はこれを書きましたが、もっとエレガントな解決策があると思いますか?

import itertools
q=[]
x=["","","",""]
q=list(itertools.product("01", repeat=4))
for p in q:
    if float(p[0]) == 0:
        x[0]= "Black"
    else:
        x[0] = "White"
    if float(p[1]) == 0:
        x[1]= "Car"
    else:
        x[1] = "Bike"
    if float(p[2]) == 0:
        x[2]= "Black"
    else:
        x[2] = "White"
    if float (p[3]) == 0:
        x[3] = "Car"
    else:
        x[3] = "Bike"
    print p
    print x
4

1 に答える 1