Python 2.7, Windows 10
У меня есть код, который находит все имена листов файла excel, затем помещает, затем разбивает строку и помещает ее в список. Следующему шагу моего кода необходимо прикрепить путь к именам листов в списке. Путь к файлу будет постоянной.
Я понимаю, что этот код неверен, но я просто должен быть в состоянии сделать что-то вроде этого:
List = ['test1', 'test2', 'test3']
for i in list
print("file_Path" + i)
'file_path test1'
'file_path test2'
Но мне нужно обновить список или добавить новый список вместо печати. Каков наилучший способ сделать это. Мне было довольно сложно найти хороший ответ на этот вопрос, но я понимаю, что могу искать не в том месте.
Спасибо!
Как было предложено людьми в разделе комментариев, ваш лучший выбор для этого типа задач - это использование списка, например,
['file_Path ' + i for i in List]
Теперь я хотел добавить ответ, потому что я хотел добавить, что List
определенно не является хорошим выбором для именования для вашего объекта list
.
Я бы пошел с чем-то более значимым и дальше от ключевого слова list
(например, sheet_names
)
sheet_names = ['test1', 'test2', 'test3']
sheet_names = ['file_Path ' + i for i in sheet_names]
print(sheet_names)
>>>>['file_Path test1', 'file_Path test2', 'file_Path test3']
Вы можете попробовать комбинацию map
и add
которая добавляет два элемента списка.
from operator import add
test = ['test1', 'test2', 'test3']
path = ['file_Path '] * len(test)
list(map(add, path, test))
Выход
['file_Path test1', 'file_Path test2', 'file_Path test3']
Просто воспользуйтесь списком:
List = ['test1', 'test2', 'test3']
file_paths = ['file_path: %s' % (fp,) for fp in List]
list = ['test1', 'test2', 'test3']
for i in range(len(list)):
list[i] = 'file_path ' + list[i]
Или воспользовавшись списком:
list = ['test1', 'test2', 'test3']
new_list = ['file_path ' + item for item in list]
Я думаю, что это будет лучшим способом, поскольку я всегда использую это
oldList = ['test1','test2','test3']
newList = list(map(lambda a:"file path "+a,oldList))
Он выглядит функциональным
['file_Path ' + x for x in List]
.
Вы можете использовать представление списка для выполнения этой задачи -
List = ['test1', 'test2', 'test3']
file_path = 'your/file/path'
newList = [file_path+SheetName for SheetName in List]
Или вы можете использовать комбинацию карт + лямбда -
newList = list(map(lambda x: file_path+x , List))
filter
фильтрует элементы, он не меняет их. Вы думаете о list(map(lambda x: file_path+x , List))
List = ['file_Path ' + i for i in List]
newList = [ "{} {}".format(yourPath,x) for x in List]