技術とメンタル

技術的なことと考えていることのアウトプット

python3の辞書で標準入力からキーを得て値を出力する

標準入力からキーを受け取り、辞書を参照して値を標準出力する方法のメモ。

まず、

mydict  #あらかじめ用意しておいた辞書

があるとすると、

print(mydict[input()])

と記述すれば、そのキーに合った値を出力してくれる。




以下、入力、プログラム、出力のサンプルを載せる。

入力は、1行目にキーと値の組み合わせの数を
2行目以降はキーと値の組み合わせが続くとする。
そして、下2行に実際に辞書から検索してその値を表示したいキーを追加した。

3
aaa 1000
bbb 2000
ccc 3000
aaa
ccc

その時、プログラムは

N = int(input())

#init
mylist=[]

#make list
for i in range(N):
    mylist.append(input().split())

#make dictionary from list    
mydict=dict(mylist)

#output
for i in range(N):
    tmp = input()
    if tmp in mydict:
        print(tmp+"=",end="")
        print(mydict[tmp])
    else:
        print("Not found")


出力は

aaa=1000
Not found
ccc=3000

となる。

python3で標準入力から辞書を作る

「標準入力をそのままキーと値のセットそして辞書を作る方法」がググってもなかなか出てこなかったのでメモ。

今回は標準入力から一旦リストを作成してそれを辞書化する方法を紹介。

手順は以下の通り。

  1. リスト作成
  2. 辞書化する


まずリスト作成は、

#init
mylist=[]

#make list
for i in range(N):
    mylist.append(input().split())

次に辞書化は、

#make dictionary from list    
mydict=dict(mylist)

これで辞書の作成が終了。


次回、標準入力でキーを受け取り、辞書内から値を取り出す方法について記述する。

pythonで四捨五入をした値が欲しい

float型で計算していたものを最後に四捨五入して整数で表したかった時のこと。

int(  )

を使ってしまうと小数点以下切り捨てになってしまって四捨五入ができない。

そんな時は、

round(  )

を使えばいい。

例えば入力が

10.515

の時に

出力で

11

が欲しいのであれば、

num=round(10.515)
print(num)

と記述すればいい。


さらに、第2引数に小数点第何位まで欲しいのか指定することもできる。

print(round(10.515,1))  #少数第二位を四捨五入 -> 少数第一位までの値
print(round(10.515,2))  #少数第三位を四捨五入 -> 少数第ニ位までの値 

それぞれ出力は、

10.5
10.52

となる。

pythonで標準入力からタプルを作成したい

とある課題で標準入力から得た複数の値を使ってタプルを作成しようとしたら苦戦したのここに記録する。

流れとしては

  1. リストを作成
  2. そのリストをタプル化する

となっている。

例えば入力を

1 2 3

だとすると

my_list = map(int,input().split().strip())  #リスト作成
my_tuple = tuple(my_list)    #タプル化

print(my_tuple) 

といった具合である。

出力を参考までに載せておくと

(1, 2, 3)

となる。


今回のポイントは

tuple( )

を使うということだが、軽く教科書見たり、ググったりしても載ってなかったような。

初めての投稿

情報弱者による日々の格闘を書き綴ろうと思います。