0

次のような辞書を作成するとします。

self.defaultValues = {}
self.defaultValues["A"] = "10"
self.defaultValues["B"] = "100"
self.defaultValues["C"] = "20"
self.defaultValues["D"] = "12.5"

追加したのと同じ順序でアイテムを繰り返し処理できるようにしたい、つまり

for k in self.defaultValues:
     print k

結果として

A
B
C
D

また、別のリストがある場合、必ずしも同じ長さである必要はありません。辞書とリストの両方を繰り返したいのですが、リストに値が存在する場合はそれを印刷し、そうでない場合は辞書を形成する場合に印刷します。シンプルで簡単にできます

if self.list.count(value) != 0:

しかし、もっとエレガントな方法があるのではないかと思います。

ありがとう!

4

2 に答える 2

5

最初の問題には、:を使用しますOrderedDict

from collections import OrderedDict
d = OrderedDict()
d["A"] = "10"
d["B"] = "100"
d["C"] = "20"
d["D"] = "12.5"
for k in d:
    print k

OrderedDict要素が挿入された順序を尊重します。

2番目の質問(実際には個別の問題に対して個別の質問を行う必要があります)ではin、オブジェクトがリストに含まれているかどうかをテストするために使用できます。

l = [1,2,3,4]
print 1 in l # prints True
print 5 in l # prints False
于 2012-08-27T08:24:59.793 に答える
4

質問の最初の部分には、collections.OrderedDictを使用します

第二に、あなたがまだ順序を気にかけていると仮定して、あなたは試すことができます(そしてdが元のdictであると仮定して):

tmp_dict = OrderedDict((x, x) for x in l)
tmp_dict.update(d)

これでtmp_dict、気になる値が表示されます(tmp_dict.values()それらが表示されます)。

于 2012-08-27T08:27:48.813 に答える