私は辞書を持っています:
a = {"w1": "wer", "w2": "qaz", "w3": "edc"}
その値を印刷しようとすると、右から左に印刷されます。
>>> for item in a.values():
print item,
edc qaz wer
左から右に印刷したい:
wer qaz edc
どうすればいいですか?
私は辞書を持っています:
a = {"w1": "wer", "w2": "qaz", "w3": "edc"}
その値を印刷しようとすると、右から左に印刷されます。
>>> for item in a.values():
print item,
edc qaz wer
左から右に印刷したい:
wer qaz edc
どうすればいいですか?
できません。辞書には使用できる順序がないため、辞書リテラルに関して「左から右」という概念はありません。並べ替えを決定し、それに固執します。
collections.OrderedDict
(python 2.7以降-Python2.4以降(私は思う)にこの機能を提供するActiveStateレシピがどこかにあります)を使用してアイテムを保存できます。もちろん、アイテムを適切な順序で辞書に挿入する必要があります({}
構文は機能しなくなります。また、他の人が述べているように、これらは通常の辞書に依存しているため、key=valueをコンストラクターに渡しません。順序の概念なし)
キーのアルファベット順でそれらが必要であると仮定すると、次のようなことができます。
a = {"w1": "wer", "w2": "qaz", "w3": "edc"} # your dictionary
keylist = a.keys() # list of keys, in this case ["w3", "w2", "w1"]
keylist.sort() # sort alphabetically in place,
# changing keylist to ["w1", "w2", w3"]
for key in keylist:
print a[key] # access dictionary in order of sorted keys
辞書はハッシュ値を使用して値を関連付けます。辞書をソートする唯一の方法は、次のようになります。
dict = {}
x = [x for x in dict]
# sort here
y = []
for z in x: y.append(dict[z])
私はしばらく Python で実際の作業を行っていないので、少しさびているかもしれません。間違っている場合は修正してください。