私は Python でプログラミングすることになっていますが、Python を使ったのは 3 週間だけです。あらゆる種類の問題を解決し、トレーニングとして関数を作成する必要があります。私の機能の 1 つで、この行を使用します。
theDict = dict( [(k,v) for k,v in theDict.items() if len(v)>0])
ただし、完全に理解できない、または完全に説明できないものは使用できません。セリフの要点はわかるのですが、うまく説明できません。だから私のインストラクターは、これを使用するには、タプルに関するすべてを学び、リスト内包表記を完全に理解するか、純粋な python でそれを書かなければならないと言いました。
行は基本的に辞書を調べ、辞書内で空のリストと等しい値を探し、それらのキー/値を削除することになっています。
それで、私の質問は、この行は、純粋で非リスト内包のPythonではどのように見えるでしょうか? 頑張って書きたいので書いてみます。無料で回答が得られるサイトではありませんが、うまくいかない場合は修正して完成させてください。
また、別の問題は、辞書の「値」内の空のリストが空の場合、ループ内で処理されないことです。ループは、空の値に等しいキーを削除することになっています。では、チェックがループ内にあり、ループの本体に空の配列がない場合、リストが空であるかどうかをどのようにチェックするのでしょうか?
for key,value in TheDict.items(): #i need to add 'if value:' somewhere,
#but i don't know how to add it to make it work, because
#this checks if the value exists or not, but if the value
#doesn't exist, then it won't go though this area, so
#there is no way to see if the value exists or not.
theDict[key]=value
空のリストの値を持つ辞書値を削除するためのより良い方法がある場合。私にお知らせください。
そして、どのように
theDict = dict( [(k,v) for k,v in theDict.items() if len(v)>0])
ジェネレーターを使用しなかった場合のように見えますか?