1
2

More than 3 years have passed since last update.

【python】listの各要素を一つづつ比較し勝敗を出すプログラム。zip()

Posted at

【python】listの各要素を一つづつ比較し勝敗を出すプログラム。zip()

2つの配列が与えられたときに、各々の1つ目の要素を比較し、勝った方に1点を与え、それぞれの点数を出力する。

Alice対Bob。勝った方に1点ずつ入る。引き分けの場合0点。

▼sample input

17 28 30
99 16 8

▼sampel output

2 1

▼my answer


def compareTriplets(a, b):
#勝敗数カウント用の変数をセット。初期値0
    alice=0
    bob=0

#与えられた配列の要素を一つづつ比較
    for pair in zip(a,b):
        if pair[0]>pair[1]:
            alice+=1
        elif pair[0]<pair[1]:
            bob+=1

#戻り値を返す
    return (alice,bob)

#input処理
if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    a = list(map(int, input().rstrip().split()))

    b = list(map(int, input().rstrip().split()))

    result = compareTriplets(a, b)

    fptr.write(' '.join(map(str, result)))
    fptr.write('\n')

    fptr.close()

複数の配列の要素を一つづつ抜き出す

zip(配列1,配列2)を使う
型はzip。
ネスト構造で配列1の1つ目と、配列2の1つ目の要素をセットにし、新たに1つ目の要素にする。

a=[1,2,3]
b=[4,5,6]
print(list(zip(a, b)))

#出力
[(1, 4), (2, 5), (3, 6)]

zipとfor文の組み合わせ

a=[1,2,3]
b=[4,5,6]

for pair in zip(a,b):
    print(pair)

#出力
(1, 4)
(2, 5)
(3, 6)

rstrip()

末尾の空白を削除する

a="   a bcd efg     "
a.rstrip()

#出力
'   a bcd efg'

文頭と文末の空白を削除

.strip() 先頭と末尾の空白を削除
.lstrip() 先頭の空白を削除
.rstrip() 末尾の空白を削除

※間の空白は消えない

letter="   a bcd efg     "

s = letter.strip()
l = letter.lstrip()
r = letter.rstrip()

print(s)
print(l)
print(r)

#出力
a bcd efgここまで
a bcd efg     ここまで
   a bcd efgここまで

文頭と文末の指定した文字を削除

.strip("文字列") 先頭と末尾
.lstrip("文字列") 先頭
.rstrip("文字列") 末尾

※連続しているばあいはすべて
※間の文字は消えない

letter="a bad eaa"

s = letter.strip("a")
l = letter.lstrip("a")
r = letter.rstrip("a")

print(s)
print(l)
print(r)

#出力
 bad e
 bad eaa
a bad e

メソッドの出力定義

①return
呼び出しに、fptr = open(os.environ['OUTPUT_PATH'], 'w')がある場合。
メソッドは変数に代入さている。result = compareTriplets(a, b)

②print
メソッドを実行している場合。
最終出力がcompareTriplets(a, b)であれば、メソッド内はprint()とする。

1
2
0

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
1
2