0

これで、ファイル txt で辞書を実装する方法がわかりました。だから私はexample.txt(汎用ファイル)を作成しました:

aaa.12
bbb.14
ccc.10

辞書を作成するには:

with open('example.text') as f:
    hash = {}
    for line in f:
        key, value = line.strip().split('.', 1)
        hash[key] = int(value)

だから今、私は自分の要素を値で注文したい:だから私は試してみる

with open('example.txt') as f:
    hash = {}
    for line in f:
        key, value = line.strip().split('.', 1)
        hash[key] = int(value)
        print hash #this print my dict
        value_sort=sorted(hash.values())
        print value:sort #to check the what return and gave me in this case value_sort=[10, 12, 14]

完璧なので、どうすればexample.txtに私のアイテムを値順に書くことができますか:

ccc.10
aaa.12
bbb.14
4

1 に答える 1

0

hashdict を個別にループして、値でソートするように要求する必要があります。

from operator import itemgetter

hash = {}
with open('example.text') as f:
    for line in f:
        key, value = line.strip().split('.', 1)
        hash[key] = int(value)

for key, value in sorted(hash.items(), key=itemgetter(1)):
    print '{0}.{1}'.format(key, value)

呼び出しには、sorted()並べ替えのキー、つまり各.items()タプルの 2 番目の要素 (キーと値のペア) が与えられます。

並べ替えられたアイテムをファイルに書き込みたい場合は、そのファイルを書き込みモードで開く必要があります

with open('example.txt', 'w') as f:
    for key, value in sorted(hash.items(), key=itemgetter(1)):
        f.write('{0}.{1}\n'.format(key, value))

\nすべてのエントリの後に改行 ( ) を書くことに注意してください。printには改行が含まれていますが、ファイルに書き込むときは手動で含める必要があります。

于 2012-11-21T15:43:10.787 に答える