0
1

Pythonでmapオブジェクトを正しく出力する方法:list化とアンパックの使い分け

Posted at

はじめに

この問題の2行目以降の入力をそのまま出力するために以下のコードを書きました。

コード

# coding: utf-8
# 自分の得意な言語で
# Let's チャレンジ!!
n = int(input())
l = []

for i in range(n):
    l.append(map(int,input().split()))
    print(l[i])

実行結果

<map object at 0x1473aa9161c0>
<map object at 0x1473aa98dee0>
<map object at 0x1473aa9382e0>
<map object at 0x1473aa938520>
<map object at 0x1473aaa1a610>

そうです。mapをprintするとこのようなmapのオブジェクトが出力されます。*
そのため、正しくは

1. listにする

# coding: utf-8
# 自分の得意な言語で
# Let's チャレンジ!!
n = int(input())
l = []

for i in range(n):
   l.append(list(map(int,input().split())))
   print(l[i])

出力

期待される出力ではリストになっていない!

[813, 813]
[8, 13]
[81, 1]
[81, 3]
[8, 813]

2. *でアンパックする

正しい例

# 自分の得意な言語で
# Let's チャレンジ!!
n = int(input())
l = []

for i in range(n):
    l.append(map(int,input().split()))
    print(*l[i])

出力

813 813
8 13
81 1
81 3
8 813

*演算子(astarisk operator)は、リストやタプルなどの要素を一つの変数として取り出すことを可能にしてくれます。

alphabets = ["a", "b", "c", "d"]
print(alphabets) 
print(*alphabets)

出力

 ["a", "b", "c", "d"]
 a b c d

詳しく知りたい方はこちら↓

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