質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.38%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

592閲覧

.keysがなくても一つずつキーを返せるのか

nomaluu

総合スコア34

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/07/15 12:40

編集2021/07/15 12:58

質問の経緯

ディクショナリについて、ディクショナリ名。keys()とディクショナリ名だけ
のコードを実行したところ、変化がなかった。そして、ディクショナリをprintした場合ターミナルの一番下のようにキーも値も出力されるのにキーしか出力されなかったため質問しました。

コード

sale={'tokyo':80,'nagoya':60,'kyoto':22,'osaka':50,'fukuoka':75}
print(sale)

for k in sale.keys():
print(k,end='\t')
print()

for l in sale:
print(l,end='\t')
print()

print(sale)

ターミナル

tokyo nagoya kyoto osaka fukuoka
tokyo nagoya kyoto osaka fukuoka
{'tokyo': 80, 'nagoya': 60, 'kyoto': 22, 'osaka': 50, 'fukuoka': 75}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

参考
マッピング型 --- dict

iter(d)
辞書のキーに渡るイテレータを返します。これは iter(d.keys()) へのショートカットです。

と規定されています。

投稿2021/07/16 01:09

lehshell

総合スコア1154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nomaluu

2021/07/16 14:48

lehshellさん回答ありがとうございます。「参考」を掲載していただきありがとうございます。
guest

0

for e in dct: と書いたとき、内部的には iter(dct) が呼び出されます。

dct と dct.keys() はprintしても分かるとおり違うオブジェクトですが、
イテレータについては同じものを返します。深い理由はきっとなく、単に便利だからなのでしょう。

Python

1>>> type(dct) 2<class 'dict'> 3>>> 4>>> type(iter(dct)) 5<class 'dict_keyiterator'> 6>>> type(iter(dct.keys())) 7<class 'dict_keyiterator'> 8>>> 9>>> type(iter(dct.values())) 10<class 'dict_valueiterator'>

投稿2021/07/15 23:35

LouiS0616

総合スコア35668

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nomaluu

2021/07/16 14:44

回答ありがとうございます。単に便利だからなんですね。
guest

0

ベストアンサー

python

1sale={'tokyo':80,'nagoya':60,'kyoto':22,'osaka':50,'fukuoka':75} 2print(sale) 3 4for k in sale.keys(): 5 print(k,end='\t') 6 print() 7 8for l in sale: 9 print(l,end='\t') 10 print() 11 12print(sale) 13

Pythonの辞書(dict)のforループ処理(keys, values, items)に記載がありますが、2つのforは同じ結果を出力します。したがって「不要です」

「ディクショナリ名」は__key__キーと __value__値ではなく__sales__変数名を示してますか?

投稿2021/07/15 13:04

toshikawa

総合スコア388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nomaluu

2021/07/15 13:07

回答ありがとうございます。 【「ディクショナリ名」はkeyキーと value値ではなくsales変数名を示してますか?】についてですが、「ディクショナリ名」は変数名を示しています
nomaluu

2021/07/15 13:10

理解することができました。ありがとうございました。
toshikawa

2021/07/15 13:15

sale={'tokyo':80,'nagoya':60,'kyoto':22,'osaka':50,'fukuoka':75} print('辞書saleのkeyは {} です'.format("\t".join(i for i in sale))) こんな感じですかね。
nomaluu

2021/07/15 13:39

・・・多分そうなんですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.38%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問