まず最初の値が、私はこのようになります辞書D1があれば辞書値リストからタプルを削除します。その辞書通じタプル= 1
d1 = { 'w' : ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
'x' : ['d', 'd', 'd', 'e', 'e'],
'y' : ['f', 'f', 'g'],
'z' : ['h', 'i']
}
次にIループし、各値がある、新しい辞書を作成します整数とリストの2つの要素を持つリスト整数は、d1のその値の文字列の数です。リストはタプルが含まれ、その文字列をd1に登場D1から(タプルの1位での)文字列と回数を含む各タプル(タプルの位置0に):
d2 = { 'w' : [10, [(5, 'a'), (3, 'b'), (2, 'c')],
'x' : [5, [(3, 'd'), (2, 'e')],
'y' : [3, [(2, 'f'), (1, 'g')],
'z' : [2, [(1, 'h'), (1, 'i')]
}
を私が削除したいです
dFinal = { 'w' : [10, [(5, 'a'), (3, 'b'), (2, 'c')],
'x' : [5, [(3, 'd'), (2, 'e')],
'y' : [2, [(2, 'f')]
}
私は全体の辞書を削除する辞書の理解であると考えているものの例をお読みください。私が望む最後にして、一度だけ(「G」、「H」、および「I」)が表示されます任意の文字列値リストの長さが2未満のアイテム:
d = {k:v for k,v in d.items() if len(v) > 1}
私はリスト/ディクショナリの理解を把握しようとしており、このようなものを使って私が説明したことを達成し、道に沿って何かを学びたいと考えています。
まず、d2を引数とする関数を書こうとしましたが、各タプルの位置0を参照する方法はわかりません。
次に、d2を変更しようとするのではなく、タプルを持たないd1を使用してdFinalを作成するほうがはるかに簡単だと考えました。
dFinalをd1 および/または d2から作成し、思考プロセスを説明するきれいな方法を説明できれば、本当にありがたいです。どちらも、私が理解のもとに辞書リストを正確に操作する方法を理解するのに役立ちます。
ありがとうございます!
どうもありがとうございました。ただし、これは各値の先頭で「合計整数」を調整するものではありません。 10,5、および3が10,5、および2になる必要があります。 – ddrsee
@ddrseeはそれを逃しました。簡単な修正。 –
ありがとうございます。私はCounterについて読んで、ここで何が起こっているのか理解しようとします... – ddrsee