#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