実行すると、次のエラーが表示されます。
TypeError: 'zip' オブジェクトは添字可能ではありません
私は何をすべきか?
Python 3 ではzip()
、リストではなく反復子を返します。リストにキャストすることもできます:
columns = list(zip(*rows))
float_columns = [map(float, col) for col in columns[1:]]
itertools.islice
最初の要素以外のすべてを選択するために使用します。
from itertools import islice
columns = zip(*rows)
float_columns = [map(float, col) for col in islice(columns, 1)]
または次のように最初の要素をスキップしnext()
ます。
columns = zip(*rows)
next(columns, None) # skip the first column
float_columns = [map(float, col) for col in columns]
map()
リストではなく、イテレータも返すことに注意してください。それはあなたの目的には問題ないかもしれません。
たとえば、各列の最大値を見つけたい場合は、それを組み合わせることができます。
columns = zip(*rows)
next(columns, None) # skip the first column
max_columns = [max(map(float, col)) for col in columns]