リスト内の辞書の値を並べ替えるにはどうすればよいですか?

Noneiffy04

キーが単語の長さで、値が単語自体である辞書を返すコーディング演習を続けています。これは、get_word_len_dict(text)関数に渡されるパラメーターであるテキストを分割し、文字数をカウントすることによって行われます。次に、長さがソートされ、print_dict_in_key_order(a_dict)に出力されます。

次のような出力が得られます。

2 : ['to', 'is']
3 : ['why', 'you', 'say', 'are', 'but', 'the', 'wet']
4 : ['does', 'when', 'four', 'they', 'have']
5 : ['there', 'stars', 'check', 'paint']
7 : ['someone', 'believe', 'billion']

どちらが正しいように見えますが、リスト内の値をアルファベット順に並べたい場合はどうなりますか?つまり、大文字で始まる単語も優先する必要があります。例えば。['5月'、 'および']。

理想的には、アルファベット順の値で次のような出力が必要です。

2 : ['is', 'to']
3 : ['are', 'but', 'say', 'the', 'wet', 'why', 'you']
4 : ['does', 'four', 'have', 'they', 'when']
5 : ['check', 'paint', 'stars', 'there']
7 : ['believe', 'billion', 'someone']

これまでprint_dict_in_key_order(a_dict)内でキーを並べ替えることができましたが、値も並べ替えたい場合はどうすればよいかわかりませんか?

def get_word_len_dict(text):
    dictionary = {}
    word_list = text.split()
    for word in word_list:
        letter = len(word)

        dictionary.setdefault(letter,[])

        if word not in dictionary[letter]:
            dictionary[letter].append(word)

    return dictionary

def test_get_word_len_dict():
    text = 'why does someone believe you when you say there are four billion stars but they have to check when you say the paint is wet'
    the_dict = get_word_len_dict(text)
    print_dict_in_key_order(the_dict)


def print_dict_in_key_order(a_dict): 
    all_keys = list(a_dict.keys()) 
    all_keys.sort() 
    for key in all_keys: 
        print(key, ":", a_dict[key]) 
gmds

あなたがしたいことは、長さでグループ化し、次に値でソートし(辞書式順序で比較すると大文字は小文字よりも「小さい」ため)、各グループから重複を削除し、すべてをdict理解することです。

itertools.groupbyたとえば、の類似関数とは異なりpandas、は隣接しないグループを別個のものとして扱うため、最初に長さで並べ替える必要があることに注意してください

例:

from itertools import groupby
from pprint import pprint

def solution(sentence):
    sorted_words = sorted(sentence.split(' '), key=len)
    return {length: sorted(set(words)) for length, words in groupby(sorted_words, len)}

sentence =  'Why does someone believe you when you say there are four billion stars but they have to check when you say the paint is wet'

pprint(solution(sentence))

出力:

{2: ['is', 'to'],
 3: ['Why', 'are', 'but', 'say', 'the', 'wet', 'you'],
 4: ['does', 'four', 'have', 'they', 'when'],
 5: ['check', 'paint', 'stars', 'there'],
 7: ['believe', 'billion', 'someone']}

'Why'大文字で始まり、残りはアルファベット順にソートされているため、他の文字よりも前に来ることに注意してください

関数構造を保持したい場合listは、辞書でそれぞれをインプレースで並べ替えることができます。

def get_word_len_dict(text):
    dictionary = {}
    word_list = text.split()
    for word in word_list:
        letter = len(word)

        dictionary.setdefault(letter,[])

        if word not in dictionary[letter]:
            dictionary[letter].append(word)

    for words in dictionary.values():
        words.sort()

    return dictionary

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

辞書エントリのリストを値で並べ替える(カスタム並べ替え)にはどうすればよいですか?

分類Dev

次の辞書のリストを並べ替えるにはどうすればよいですか?

分類Dev

リストの値を値として、辞書を降順で並べ替えるにはどうすればよいですか?

分類Dev

Pythonで、値にリストが含まれる辞書がある場合、そのリスト内のアイテムの量に基づいて辞書を並べ替えるにはどうすればよいですか?

分類Dev

リストを辞書式に並べ替えるにはどうすればよいですか

分類Dev

辞書でリストを並べ替えるにはどうすればよいですか

分類Dev

リンクリスト内の名前を並べ替えるにはどうすればよいですか?

分類Dev

辞書のリストで 3 レベルの並べ替えを行うにはどうすればよいですか?

分類Dev

Pythonで辞書を英数字順に値で並べ替えるにはどうすればよいですか?

分類Dev

key:listディクショナリをリスト内の値で並べ替えるにはどうすればよいですか?

分類Dev

辞書をキーで並べ替え、キーと値の両方を含む辞書全体を返すにはどうすればよいですか?

分類Dev

2番目のリストを並べ替えるときに、リストを並べ替えるにはどうすればよいですか?

分類Dev

PYTHON-辞書の値を並べ替えて丸め、同じキーに割り当てたままにするにはどうすればよいですか?

分類Dev

辞書の値を2番目のキーで並べ替えるにはどうすればよいですか?

分類Dev

特定の基準からリストを並べ替えるにはどうすればよいですか

分類Dev

このリストをjuliaで並べ替えるにはどうすればよいですか?

分類Dev

rxjsで既存のストリームを並べ替えるにはどうすればよいですか?

分類Dev

リストを最新の日付で並べ替えるにはどうすればよいですか?

分類Dev

C ++でポインタのリストを並べ替えるにはどうすればよいですか?

分類Dev

リストを2番目の単語で並べ替えるにはどうすればよいですか?

分類Dev

Rのリスト内のすべてのデータフレームの列を並べ替えるにはどうすればよいですか?

分類Dev

リストの1つの値に基づいて4つの関連リストを並べ替えるにはどうすればよいですか?

分類Dev

辞書内のリストの値を更新するにはどうすればよいですか?

分類Dev

数値文字列のリストを並べ替えるにはどうすればよいですか?できればLINQを使用する

分類Dev

特定の値を除外しながら、リストのリストを同時に並べ替えるにはどうすればよいですか?

分類Dev

Pythonの各文字列内のfloatに基づいてリストを並べ替えるにはどうすればよいですか?

分類Dev

Java 8を使用して、特定のキーの値でマップのリストを並べ替えるにはどうすればよいですか?

分類Dev

Java 8を使用して、特定のキーの値でマップのリストを並べ替えるにはどうすればよいですか?

分類Dev

リスト内のアイテムを並べ替えられた順序でグループ化するにはどうすればよいですか?

Related 関連記事

  1. 1

    辞書エントリのリストを値で並べ替える(カスタム並べ替え)にはどうすればよいですか?

  2. 2

    次の辞書のリストを並べ替えるにはどうすればよいですか?

  3. 3

    リストの値を値として、辞書を降順で並べ替えるにはどうすればよいですか?

  4. 4

    Pythonで、値にリストが含まれる辞書がある場合、そのリスト内のアイテムの量に基づいて辞書を並べ替えるにはどうすればよいですか?

  5. 5

    リストを辞書式に並べ替えるにはどうすればよいですか

  6. 6

    辞書でリストを並べ替えるにはどうすればよいですか

  7. 7

    リンクリスト内の名前を並べ替えるにはどうすればよいですか?

  8. 8

    辞書のリストで 3 レベルの並べ替えを行うにはどうすればよいですか?

  9. 9

    Pythonで辞書を英数字順に値で並べ替えるにはどうすればよいですか?

  10. 10

    key:listディクショナリをリスト内の値で並べ替えるにはどうすればよいですか?

  11. 11

    辞書をキーで並べ替え、キーと値の両方を含む辞書全体を返すにはどうすればよいですか?

  12. 12

    2番目のリストを並べ替えるときに、リストを並べ替えるにはどうすればよいですか?

  13. 13

    PYTHON-辞書の値を並べ替えて丸め、同じキーに割り当てたままにするにはどうすればよいですか?

  14. 14

    辞書の値を2番目のキーで並べ替えるにはどうすればよいですか?

  15. 15

    特定の基準からリストを並べ替えるにはどうすればよいですか

  16. 16

    このリストをjuliaで並べ替えるにはどうすればよいですか?

  17. 17

    rxjsで既存のストリームを並べ替えるにはどうすればよいですか?

  18. 18

    リストを最新の日付で並べ替えるにはどうすればよいですか?

  19. 19

    C ++でポインタのリストを並べ替えるにはどうすればよいですか?

  20. 20

    リストを2番目の単語で並べ替えるにはどうすればよいですか?

  21. 21

    Rのリスト内のすべてのデータフレームの列を並べ替えるにはどうすればよいですか?

  22. 22

    リストの1つの値に基づいて4つの関連リストを並べ替えるにはどうすればよいですか?

  23. 23

    辞書内のリストの値を更新するにはどうすればよいですか?

  24. 24

    数値文字列のリストを並べ替えるにはどうすればよいですか?できればLINQを使用する

  25. 25

    特定の値を除外しながら、リストのリストを同時に並べ替えるにはどうすればよいですか?

  26. 26

    Pythonの各文字列内のfloatに基づいてリストを並べ替えるにはどうすればよいですか?

  27. 27

    Java 8を使用して、特定のキーの値でマップのリストを並べ替えるにはどうすればよいですか?

  28. 28

    Java 8を使用して、特定のキーの値でマップのリストを並べ替えるにはどうすればよいですか?

  29. 29

    リスト内のアイテムを並べ替えられた順序でグループ化するにはどうすればよいですか?

ホットタグ

アーカイブ