Как можно объединить значения списка в один список?

#python

#python

Вопрос:

У меня много файлов в папке. Я хочу выбрать последний файл. Я также написал код, но он выдает значения в отдельном списке.

Вывод, который я получаю:

 ['tb_exec_ns_decile_20190129']
['tb_exec_ns_decile_20190229']
['tb_exec_ns_decile_20190329']
  

Ожидаемый результат:

 ['tb_exec_ns_decile_20190129', 'tb_exec_ns_decile_20190229', 'tb_exec_ns_decile_20190329']
  

Код:

 path1 = "D:/Users/SPate233/Downloads/testing/*.csv"
files = glob.glob(path1)
print(files)

for name in files:
    new_files = []
    new_files = os.path.split(name)[1].split('.')[0]
    new_files = new_files.split(',')
    print(new_files)
  

Комментарии:

1. создание new_files = [] в рамках каждой итерации, БАААД!

Ответ №1:

Правильным термином здесь было бы append не merge поскольку вы хотите, чтобы все имена файлов были в списке вместе, создайте пустой список для хранения в нем всех имен файлов:

 f_list = []                              # an empty list to store the file names
for name in files:
    file_name = os.path.split(name)[1].split('.')[0]
    f_list.append(file_name.split(','))  # appending the names to the list

print(f_list)                            # print the list
  

Ответ №2:

Вы всегда можете объединить список в python, как в примере ниже:

 >>> first_list = [1, 2, 3]
>>> second_list = [4, 5, 6]
>>> merged_list = first_list   second_list
>>> merged_list
[1, 2, 3, 4, 5, 6]