はおそらく、あなたはcolumns_to_keep
を意味し、関数のリストとして維持するために列のリストを渡します。 operator.itemgetter
ここをクリック
import csv
import operator
def prune_columns(columns_to_keep):
with open('file.csv', 'r') as source,\
open('reordered.csv','w') as result:
rdr = csv.reader(source)
wtr = csv.writer(result, delimiter=',', lineterminator='\n')
select = operator.itemgetter(*columns_to_keep)
# select is now a function that returns a tuple that
# returns elements 1, 3, 5 and 6 of the input
for row in rdr:
wtr.writerow(select(row))
prune_columns(columns_to_keep=[1, 3, 5, 6])
完璧に感謝! – NickP
私はいつもリストの理解を使用します:これは彼らのためのものです。また、最初の例では、 'list()'は通例 '[]'と書かれています。 – EOL
内容は素晴らしいですが、新しいプログラマーが頭を抱くのは難しいです。それは質問が何であるかではないので、私はそれを簡単かつ明示的に保つことを選択しました。 YMMV。 – alexis