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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

592閲覧

python forの反復処理でitems()が返す個々のタプルはランダムですか?

padfoot

総合スコア3

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/02/08 10:36

python3 4.5 p100 にて

accusation = ('room':'ballroom','weapon':'lead pipe','person':

'Col.Mustard')

for card,contents in accusation.items():

print('card',card, 'has the contents',contents)

出力
Card weapon has the contents lead pipe
Card person has the contents Col.Mustard
Card room has the contents ballroom

Q辞書の順番がroom weapon person なのに
出力された順番が、なぜ weapon person room になるんですか?
辞書からitems関数で代入する場合はランダムに出力されると言うことですか?

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

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

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

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

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

meg_

2021/02/08 10:59

>>>accusation = ('room':'ballroom','weapon':'lead pipe','person': 'Col.Mustard') このコードはエラーになりますので実際に実行したコードに直してください。
padfoot

2021/02/09 11:59

指摘ありがとうございます。 理解できました
guest

回答1

0

ベストアンサー

言語として順序を保証せず、実装は順序を保証していませんでした。
python3.7では、実装を変えて順序を保つようになりました。
collectionsモジュールのOrderedDictなら順序は保証されています。

投稿2021/02/08 10:58

ppaul

総合スコア24666

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

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

padfoot

2021/02/09 12:04

回答ありがとうございます! 自分の使っているオライリージャパンの『python入門』のバージョンが3、7以前のものだったため記載されたコードの順序が正しくなかったと言うことでしょうか?
ppaul

2021/02/09 12:19

その可能性は高いと思います。 最新の状況を知りたければ、以下のようなものを読むのが確実なのですが、翻訳できていない部分も多くて大変です。 https://docs.python.org/ja/3/whatsnew/3.9.html 気になったときにはネットで調べるのですが、うまく探せない場合も多いですね。 そういうときは、teratailなどで聞いてみることです。
padfoot

2021/02/13 09:59

ありがとうございます! 本当に助かります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問