私はPythonで複数の辞書を降順でソートしようとしています。Pythonで複数のdictを値で並べ替える
highs = []
file_a = open("/home/victor/Documents/Python-3.5.1/[email protected]")
def func():
for line in file_a:
from collections import OrderedDict
s = {}
(s['date'], s['open'], s['high'], s['low'], s['close'], s['volume'], s['openinterest'], s['totalVolume'], s['totalOpenInterest']) = line.split(',')
newlist = sorted(s.items(), key=lambda s: float(s[2]), reverse = True)
func()
file_a.close()
はしかし、私はそれを実行するたびに私はこのエラーを取得:
File "/home/victor/Documents/first project.py", line 8, in <lambda>
newlist = sorted(s.items(), key=lambda s: float(s[2]), reverse = True)
IndexError: tuple index out of range
私は、Pythonに非常に新しいです。どんな助けもありがとう。
'items()'は、2つの要素を含む 'tuple'オブジェクトを提供します。このような 'tuple 'の最高インデックスは' 2 'ではなく' 1 'です。 – TigerhawkT3
"high"という値に基づいてテキストファイル内の行をどのようにソートすることができますか? –
's'は、' 'date''、' 'open''、' 'high''のような文字列キーを持つ辞書ですが、' 'key''に数値2のキーを使用しようとしていますあなたの 'sorted()'呼び出しに渡された関数です。おそらく 'float(s ['high'])'が必要です。 – martineau