Существует множество способов сделать это. Если вы знаете связь между именами и столбцами во время написания своего кода, самый простой способ на данный момент - это:
for row in data:
(foo, bar, baz, bat) = row
... при условии, что вам не нужно обновлять row
(и data
).
Если вам нужно обновить строку, копирование значений в переменные не будет работать. Вам нужно манипулировать элементами через их индексы. В этом случае подход Авиральда самый простой:
(foo, bar, baz, bat) = range(4)
for row in data:
row[foo] = row[bar]
Если вы хотите сослаться на столбцы с помощью строки , содержащей их имя, вам необходимо скопировать строку в словарь, ключом которого является имя столбца. Затем, когда вы закончите манипулировать словарем, вам нужно обновить исходный список или заменить его новым (что и делает этот код):
columns = ("foo", "bar", "baz", "bat")
for i in range(len(data)):
d = dict(zip(columns, data[i]))
d["foo"] = d["bar"]
data[i] = [d[col] for col in columns]