0

だから私はこれを広範囲にやろうとしましたが、役に立ちませんでした..リストを持つ名前の辞書と、リスト内のものの量の数値を取るプログラムを書いています。リスト内の各名前を印刷して、最初の名前がリスト内の値の量が最も少なく、最後の名前がリスト内の値の量が最も多い名前になるようにします。私のコードです。IT ONLY は、キーである名前と値のリスト全体を出力します。そして最後に e を出力します。それで

「アンナ」 3 4 5 6 e 「ダン」 3 4 6 e 「チラ」 3 4 e 「ビリー」 6 e ...など

for GPS in GNR:

    print('"'+GPS+'"')
    for s in GNR[GPS]:
        print(s)
    print("e")

これがその値を含む辞書です。

GNR = {"アンナ":[3,4,5,6],"ビリー":[6],"シラ":[3,4],"ダン":[3,4,6]}

したがって、私が望む結果は上記ではなく、次のとおりです。

「ビリー」 6 e 「シラ」 3 4 e 「ダン」 3 4 6 e 「アンナ」 3 4 5 6 e

ご覧のとおり、最初にリスト内の値が最も小さい名前が出力され、その後に残りが出力されます。

私はこれを行う方法がわかりません:(各値を残りの値と比較してどこかに保存する必要があることは知っていますが、どこに保存するかわかりません。助けがあれば感謝します:)

4

1 に答える 1

1

対応するリスト内の要素の数で並べ替えられたキーを取得するには、次のようにします。

ascending = sorted(GNR, key=lambda x: len(GNR[x]))
# ascending is ['billy', 'cilla', 'dan', 'anna']

for key in ascending:
    li = GNR[key]
    # print them etc.
于 2012-04-04T01:41:00.337 に答える