Как мне печатать без квадратных скобок

#python-3.x #file-io

#python-3.x #file-io

Вопрос:

итак, я получил эту функцию здесь, и то, что она должна делать, это создать файл, в который я могу писать. второй и третий параметры представляют собой списки, в то время как первый — это просто имя файла, который я собираюсь создать для записи. В функции я создал цикл for , и я перебираю all_students_list , который представляет собой список, но в каждом индексе также есть список с именем и фамилией в списке. all_courses_list это список всех курсов в школе, и Schedule это список, который возвращает другая функция, предоставляя нам расписание ученика. Затем я добавил имя учащегося и расписание вместе, чтобы записать в файл. Проблема в том, что он также печатает [] квадратные скобки. Как я могу избавиться от этого? Я уже пытался сделать

 .replace('[', '')
.replace(']', '')
  

Но это не работает.

Вот мой код.

 def generate_student_schedules(filename, all_courses_list, all_students_list):
    with open(filename,'w') as fileout:
    
        for one_student in all_students_list:
            schedule = get_schedule(all_courses_list)
            one_line = ''
            one_line  = (f'{one_student}')
            one_line  = (f'{schedule}n')
            fileout.write(one_line)
  

Ответ №1:

Если one_student это фактический список, то вы можете использовать " ".join(one_student) , так что в целом:

 def generate_student_schedules(filename, all_courses_list, all_students_list):
    with open(filename,'w') as fileout:
    
        for one_student in all_students_list:
            schedule = get_schedule(all_courses_list)
            one_line = ''
            one_line  = (" ".join(one_student))
            one_line  = (f'{schedule}n')
            fileout.write(one_line)
  

Ответ №2:

При печати списка по умолчанию в Python печатаются скобки и элементы в списке. Вам нужно создать единую строку из компонентов списка и распечатать эту единственную строку. Ваша строка формата может извлекать отдельные элементы или использоваться join для всех элементов, если все они являются строками:

 >>> student = ['John','Smith']
>>> schedule = ['Class1','Class2']
>>> print(student,schedule)
['John', 'Smith'] ['Class1', 'Class2']
>>> line = f'{student[1]}, {student[0]}: {", ".join(schedule)}'
>>> print(line)
Smith, John: Class1, Class2