2

タイトルとデータを含む辞書があります。辞書から抽出された順序を維持しながら、このデータを 2 つのリストに分割する方法はありますか? キー リストと値リストを別々に処理する必要があり、それらのリストを使用して文字列を作成します。

私はそれらを別々に印刷し、出力が一致する必要があるため、これは重要です。リストが入力されたときよりも順番が違っていても問題ありません。リスト内の位置が一致していれば問題ありません。

このケースを表す非常に簡単な例を次に示します。

mydict = {'Hello':1, 'World':2, 'Again':3}
keys = mydict.keys()
values = mydict.values()

print 'The list of keys are: %s' % stringify(keys)
print 'The corresponding values are: %s' % stringify(values)

# Output:
> The list of keys are: Hello, Again, World
> The corresponding values are: 1, 3, 2

順序付けられた辞書を作成できることはわかっていますが、キー/値の順序付けが保証されますが、この場合も同様に処理したいと思います (順序付けられていない辞書)。

4

4 に答える 4

1
titles = myDict.keys()
allData = [myDict[t] for t in titles]

このように、titles予測できない順序になる可能性がありますが、の各要素はallData、の対応する要素に関連するデータになります。titles

于 2013-07-17T19:18:14.280 に答える
1

を使用するだけitemsで、効果的にkeysandのコピーがまとめて圧縮されvaluesます。

items = mydict.items()

print 'The list of keys are: %s' % stringify([key for key, value in items])
print 'The list of values are: %s' % stringify([value for key, value in items])
于 2013-07-17T19:18:17.850 に答える
1

を変異させないだけdictで大丈夫です。それ以外の場合は、既に行ったことにひねりを加えただけです。

keys, values = zip(*mydict.items())

どちらかというと、2 つの操作よりも「安全」だと感じます...

于 2013-07-17T19:29:37.997 に答える