Должно быть
def fnc_assign(y,x):
import_list[x][0] = 'new_acc_no' + y + '.text'
Обратите внимание, что ваш LHS является строкой, и строки в Python являются неизменяемыми, т.е. не могут быть изменены.Я понял, что ваша цель состоит в том, чтобы присвоить полученную строку элементу массива, который вы поместили в RHS.Просто поменять их местами делает присваивание.
Или вы намерены на самом деле иметь переменную с именем new_acc_no10.text
и присвоить ей значение в списке импорта?
UPDATE
Это также предполагает, что y
является строкой (или поддерживает конкатенацию со строками с использованием оператора +
), если нет, вместо этого используйте str(y)
.
НОВОЕ ОБНОВЛЕНИЕ ЗАДАЧИ
Ваш код в вопросе (предполагается, что внешний цикл в x
for x in someValueIterator:
new_acc_no1.text = import_list[x][0]
new_acc_no2.text = import_list[x][1]
new_acc_no3.text = import_list[x][2]
new_acc_no4.text = import_list[x][12]
new_acc_no5.text = import_list[x][13]
, похоже, предлагает следующий подход. Организуйте номера счетов в словарь,индексируется индексом RHS, который вы используете для назначения, то есть что-то вроде
acc_nos = [new_acc_no1, new_acc_no2, new_acc_no3, new_acc_no4, new_acc_no5]
indices = [0,1,2,12,13]
idx2acc = dict(zip(indices, acc_nos))
и теперь цикл такой:
for index, acc_no in idx2acc.iteritems():
acc_no.text = import_list[x][index]
и с учетом внешнего цикла в x
,вместо
for x in someValueIterator:
for index, acc_no in idx2acc.iteritems():
acc_no.text = import_list[x][index]
рассмотрим циклы, например, так:
for current_list in import_list:
for index, acc_no in idx2acc.iteritems():
acc_no.text = current_list[index]