sorted()
functionは入力からソートされたリストを生成します。その入力はfound.items()
objectであり、それ自体が辞書からの(key, value)
の対を含むタプルの繰り返し可能です。タプルは辞書順に並べ替えられているので(最初の要素を比較し、次に等しい、2番目の要素など)、アルファベット順にソートされた(key, value)
のリストのリストになります。
あなた自身は、対話インタプリタでこれを試してみることができます。もちろん
>>> vowels = ['a', 'e', 'i', 'o', 'u']
>>> word = 'good'
>>> found = {}
>>> for letter in word:
... if letter in vowels:
... found.setdefault(letter, 0)
... found[letter] += 1
...
0
1
>>> found
{'o': 2}
>>> list(found.items())
[('o', 2)]
>>> sorted(found.items())
[('o', 2)]
、good
だけユニークな母音、o
が含まれているので、ソートはほとんどがあります。たった1つの(key, value)
ペアのソートされたリストは、順序の変更を表示しません。
あなたは、より複雑な単語をしようとした場合は、ultrarevolutionaries
のように、あなたがはるかに興味深い結果を得るだろう:
>>> word = 'ultrarevolutionaries'
>>> found = {}
>>> for letter in word:
... if letter in vowels:
... found.setdefault(letter, 0)
... found[letter] += 1
...
0
0
0
0
1
0
1
1
1
1
>>> list(found.items())
[('u', 2), ('a', 2), ('e', 2), ('o', 2), ('i', 2)]
>>> sorted(found.items())
[('a', 2), ('e', 2), ('i', 2), ('o', 2), ('u', 2)]
項目一次外で、u
、a
、e
、o
、i
をアルファベット順ではありません。他方、はである。a
,e
,i
,o
,u
。
あなたを混乱させるforループの構文、または実際の値がどのようにして辞書の中で終わるのか? – languitar
あなたが繰り返し処理しているものを見るには 'print(sorted(found.items()))'を試してみませんか?それであなたはあなた自身の質問に答えることができるかもしれません。また、あなたがしようとしていることについて 'collections'モジュールの' Counter'を見てください。 –
'.items()'辞書メソッドが返すものを理解する必要があります。あなたはGoogleのことができます.. 'sorted()'については忘れてください。それは単にデータを並べ替えるだけです。 –