0
1

More than 3 years have passed since last update.

【Python】対戦と組み合わせを出力する(for文のネストとif文)

Last updated at Posted at 2019-11-17

Pythonでfor文のネストとif文を使って
プロ野球の対戦の組み合わせを出力してみました。

ホーム、ビジターの概念がある場合

プロ野球ではたいていの場合
ヤクルト 対 阪神
という表記だと、先に表記されている
ヤクルトの本拠地(明治神宮野球場)での開催を指すことが多いです。

(例)
ヤクルト 対 阪神(神宮球場)
ホーム:ヤクルト、ビジター:阪神

阪神 対 ヤクルト(甲子園)
ホーム:阪神、ビジター:ヤクルト

この場合の対戦の組み合わせをPythonを使って表記すると以下のようになります。

#ホーム、ビジターの概念がある場合

team = ["ヤクルト","阪神","横浜","中日","広島","巨人"]

for vs_01 in team:
    for vs_02 in team:

        #ただし、ヤクルト 対 ヤクルト というような同チームの対戦を除く
        if vs_01 != vs_02:

            print(vs_01+ " vs " + vs_02)

ヤクルト vs 阪神
ヤクルト vs 横浜
ヤクルト vs 中日
ヤクルト vs 広島
ヤクルト vs 巨人
阪神 vs ヤクルト
阪神 vs 横浜
阪神 vs 中日
阪神 vs 広島
阪神 vs 巨人
横浜 vs ヤクルト
横浜 vs 阪神
横浜 vs 中日
横浜 vs 広島
横浜 vs 巨人
中日 vs ヤクルト
中日 vs 阪神
中日 vs 横浜
中日 vs 広島
中日 vs 巨人
広島 vs ヤクルト
広島 vs 阪神
広島 vs 横浜
広島 vs 中日
広島 vs 巨人
巨人 vs ヤクルト
巨人 vs 阪神
巨人 vs 横浜
巨人 vs 中日
巨人 vs 広島

ホーム、ビジターの概念がなく組み合わせの場合

対して、さきほどのようになホームとビジターの概念を除いて
単にチーム同士の対戦の組み合わせを出力したい場合には以下のようになります。

#ホーム、ビジターの考えがなく組み合わせの場合

#2つの同様のリストを用意する
team_01 = ["ヤクルト","阪神","横浜","中日","広島","巨人"]
team_02 = ["ヤクルト","阪神","横浜","中日","広島","巨人"]

for vs_01 in team_01:

    #片方のリストから、もう片方のリストのダブリを取り除く
    team_02.remove(vs_01)

    for vs_02 in team_02:
        print(vs_01+ " vs " + vs_02)

ヤクルト vs 阪神
ヤクルト vs 横浜
ヤクルト vs 中日
ヤクルト vs 広島
ヤクルト vs 巨人
阪神 vs 横浜
阪神 vs 中日
阪神 vs 広島
阪神 vs 巨人
横浜 vs 中日
横浜 vs 広島
横浜 vs 巨人
中日 vs 広島
中日 vs 巨人
広島 vs 巨人

これで、ヤクルト 対 ヤクルトといった同チーム同士の対戦と、
ヤクルト 対 阪神 と 阪神 対 ヤクルトといったチームの対戦のダブリを取り除くことができます。

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1