2

Pythonで重複データ連結を一覧表示する

これはリストの問題の続きですが、ここでは辞書の順序を維持したいと思います

listData=[('audioVerify', '091;0'), ('imageVerify', 'icon091.gif'), ('bufferVerify', '\x01?')]
    methodList = {}
for item in listData:
    methodList.setdefault(item[0],[]).append(item[1:])
for method in methodList:
    arguments = methodList[method]
    s = [method,arguments]
    print s

リストを反復すると、次のようになります

  ['audioVerify', [('091;0',)]]
  ['bufferVerify', [('\x01?',)]]
  ['imageVerify', [('icon091.gif',)]]

しかし、以下のように順序を維持できる可能性は何ですか:

  ['audioVerify', [('091;0',)]]
  ['imageVerify', [('icon091.gif',)]]
  ['bufferVerify', [('\x01?',)]]
4

1 に答える 1

8

私は医者が何を持っていますかorderedOrderedDict

から:

>>> from collections import OrderedDict
>>> # regular unsorted dictionary
>>> d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}

>>> # dictionary sorted by key
>>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])

>>> # dictionary sorted by value
>>> OrderedDict(sorted(d.items(), key=lambda t: t[1]))
OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])

>>> # dictionary sorted by length of the key string
>>> OrderedDict(sorted(d.items(), key=lambda t: len(t[0])))
OrderedDict([('pear', 1), ('apple', 4), ('orange', 2), ('banana', 3)])

古いバージョンの Python を使用している場合は、この他の SO の質問を参照してください

于 2012-11-05T02:35:13.440 に答える