データ コンテナーとして使用しているリストのリストがあります。デバッグ コードはすべて残しました。すべてがコンソールに表示されるので、それをたどることができます。これにより、より冗長な print ステートメントのいくつかが説明されます。
次のような 1 つの長いリストを反復して作成することによって作成されます。
[['Arsenal', 2.47, 1.2, 0.89, 'Chelsea', 2.15, 0.8, 1.21,...
サブリストはすべて均一な長さ (9 要素) であるため、以下を使用してチャンク化しました。
# This function should chunk the 'file', as when we run the above code,
# we'll end up with one incredibly long list that contains every team on the same line
def chunker(seq, size):
return (seq[pos:pos + size] for pos in xrange(0, len(seq), size))
for group in chunker(league_stats, 9):
print repr(group)
final_stats.append(repr(group))
print "printing final stats"
print final_stats
print "and here's a line break"
次に、次のようになります。
[['Arsenal', 2.47, 1.2, 0.89],
['Chelsea', 2.15, 0.8, 1.21]...]
しかし、それを印刷すると、次のように表示されます。
["['Arsenal', 2.47, 1.2, 0.89]",
['Chelsea', 2.15, 0.8, 1.21|]..."]
それを繰り返すと、期待どおりに表示されるようです
それで、サブリスト全体がリストではなく文字列になったようですよね?これには 2 つの奇妙なノックオンがあります。たとえば、final_stats[0][2] を使用して要素にアクセスすると、予想どおり「アーセナル」ではなく「A」が表示されます。
もちろん、もう 1 つは、リスト要素に対して論理演算を実行できないことです。長いリストを分割する、またはこれが起こらないようにする最善の方法は何ですか?
完全なコード (簡潔にするためにここには含まれていません) が必要な場合は、ここにあり ます。
その答えの誰かが、辞書をより良いデータコンテナとして使用することを提案しました-私はリスト構造に非常に満足しており、(初心者として)私がやりたいことを少し簡単に感じます-これらのデータ構造は常に均一なサイズですであるため、本当に必要でない限り、データ型を変更したくありません。長期的に見ていく上で参考になると思います。