1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonで競プロに挑む日誌 vol.15 ~zip関数~

Last updated at Posted at 2018-11-02

題名のフォーマットを変えました.

現在の目標

  • 2018年内に茶色になる←イマココ
  • ABC の A, B 問題を全部解く
  • 2018年度内に緑色を取得する
  • 水色になったら, APG4b で C++ にも手を出す

今日のおはなし

結論

同じ長さの文字列やイテレータが複数存在して, それらの各要素を一か所にまとめたい場合, zip 関数が有用だよ.

解いた問題
B-回転

私の解答

my_answer.py
# coding: utf-8
N = int(input())
li = [input() for _ in range(N)]
 
for i in range(N):
    row = ""
    for j in range(N):
        s = li[N-j-1][i]
        row+=s
    print(row)

# その後 for 以下を下記に変更
#for i in range(N):
#    print("".join(li[N-j-1][i] for j in range(N)))

zip を使った解答

zip_answer.py
# coding: utf-8
N = int(input())
li = [input() for _ in range(N)]
for s in zip(*li[::-1]):
    print("".join(s))

zip について調べつつ, 簡単な例で動作確認しました.

zip_example.py
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
d = [10,11,12]
print(*a)    #=>1 2 3
print(list(zip(a,b,c,d)))    =>[(1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12)]

イテレータ同士の各要素を, ひとつのタプルに格納してくれるんですね. 引数が2つの例を見かけますが, 引数は何個でも良いようです. また, *a とすると, イテレータの中身を展開できることも初めて知りました (アスタリスク一個の持つ機能まとめ).

1
2
1

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?