Чтобы изменить список, перебрать его, используя индексы:
for i in range(len(L))):
L[i] += '.txt'
Однако в этом случае вы действительно не нужно, чтобы изменить список, так что вы, вероятно, хотите использовать список comrehension, как это было предложено by @Ashwini Chaudhary. Однако, используя список понимание создает новый список, так что вы можете назначить его снова в L:
L = [s + '.txt' for s in L]
Но, если исходная переменная L является глобальной или нелокальной переменной, приведенное выше утверждение создаст новый, локальная переменная , которые исчезают в конце текущей функции, и может создать беспорядок, если вы пытались получить доступ к нему до asssignment:
>>> L = ['a', 'b', 'c']
>>> def addtxt():
... print(L)
... L = [s + '.txt' for s in L]
...
>>> addtxt()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in addtxt
UnboundLocalError: local variable 'L' referenced before assignment
Вам нужно будет добавить global
(или nonlocal
в другом случае) декларации. Это не чистый способ справиться с этим.
Таким образом, совмещая в месте замены с пониманием списка, вы получите предложение от @Jamylak
L[:] = [s + '.txt' for s in L]
где [:]
означает, что содержание списка будет заменен на правой стороне задания. Это не приведет к добавлению локальной привязки и будет помещаться в любом месте, где будет соответствовать вышеупомянутый цикл.
Пожалуйста, не редактируйте ваши вопросы, чтобы существующие ответы недействительны, и вместо того, чтобы просить людей писать код для вас, по крайней мере покажите, что вы пробовали до сих пор (хотя, честно говоря, 4 человека, которые написали вам код, вероятно, просто напишут вам больше, даже если вы не показывай никаких усилий ...) – geoffspear