【问题标题】:How do I print without square brackets如何打印没有方括号
【发布时间】:2020-10-01 22:14:38
【问题描述】:

所以我在这里得到了这个函数,它应该做的是创建一个我可以写入的文件。第二个和第三个参数是列表,而第一个只是我要创建的文件名写进去。在函数中,我做了一个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)

【问题讨论】:

    标签: python-3.x file-io


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-12
        • 1970-01-01
        • 2015-06-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多