-1

どちらが良いでしょう。次のようなリスト:

list=[['o',5.3,7],['k',5,9.2],...]

またはこのような辞書:

dict={'o':[5.3,7],'k':[5,9.2],...}

明確でない場合は、2 つの 10 進数をアルファベットの文字に関連付けようとしています。

各方法の長所と短所は何ですか?

私の特定のアプリケーションのために、リストまたは辞書を文字のアルファベット順に整理することを追加する必要があります。おそらく、リストの方が簡単に注文できますか?

4

3 に答える 3

4

何かを別のものに関連付けようとしている場合は、おそらく辞書が必要です。それはより速く、まあ、仕事に適したツールです.

使用例:

dictionary = {'o': (5.3, 7), 'k': (5, 9.2)}        # Don't use dict as a variable name, it's a built-in

print(dictionary['o'])
# (5.3, 7)

print(dictionary['k'][1]))
# 9.2

あなたのリストをタプルに置き換えました。これにより、メモリが少し節約されます (将来、別の数字を文字に関連付けたくない場合)。

ただし、辞書は文字の順序を保持しませんが、これは必要ないようです。

数字が文字に関連付けられているかどうかを確認するだけでよい場合は、さらに最適化し、セットを使用できます。

dictionary = {'o': {5.3, 7}, 'k': {5, 9.2}}

print(7 in dictionary['o'])
# True

ただし、セットは順序を保持しません。

于 2013-10-11T18:50:45.387 に答える
1

データをどのように使用するかによって異なります。アクセス時間だけが気になる場合は、@hcwhsa の時間の複雑さのリストを参照してください。

心に留めておくべきもう 1 つのことは、辞書は順序付けられていないリストであるのに対し、リスト/タプルは順序付けられているということです。これは、反復、シリアライゼーションなどに影響を与える可能性があります。

于 2013-10-11T18:55:40.597 に答える