2015-04-08 3 views
0

У меня есть эта программа:Как удалить скобки в python со строкой?

import sys 
students = [] 
grades = [] 

while True: 
    student = input ("Enter a name: ").replace(" ","") 
    if student.isalpha() == True and student != "0": 
     while True: 
      grade = input("Enter a grade: ").replace(" ","") 
      if grade == "0" or grade == 0: 
       print ("\n") 
       print ("A zero is entered.") 
       sys.exit(0) 
      if grade.isdigit()== True: 
       grade = int(grade) 
       if grade >= 1 and grade <= 10: 
        if student in students: 
         index = students.index(student) 
         grades[index].append(grade) 
         break 
        else: 
         students.append(student) 
         grades.append([grade]) 
         break 
       else: 
        print("Invalid grade.") 
    elif student == "0": 
     print("A zero is entered.") 
     break 
    else: 
     print ("Invalid name.") 
for i in range(0,len(students)): 
    print("NAME: ", students[i]) 
    print("GRADE: ", grades[i]) 
    print("AVERAGE: ", round(sum(grades[i])/len(grades[i]),1), "\n") 

Мне нужно сделать [] исчезнуть между числами, когда программа печатает их, например.

При вводе номера, например:

Enter a name: Jack 
Enter a grade: 8 
Enter a name: Jack 
Enter a grade: 9 
Enter a name: Jack 
Enter a grade: 7 
Enter a name: 0 
A zero is entered. 

Он печатает так:

NAME: Jack 
GRADE: [8, 9, 7] 
AVERAGE: 8.0 

Но мне нужна программа для печати, как это:

NAME: Jack 
GRADE: 8, 9, 7 
AVERAGE: 8.0 

ранги должен быть без скобок. Я думаю, мне нужно использовать строку или что-то еще, кто-нибудь знает как?

ответ

1

Если grades список списков целых чисел:

print(', '.join(str(i) for i in grades[g])) # where g sublist index 
+2

сортов является списком списков, так что вам нужно будет использовать '(ул (г) для г в классы [I])' – AChampion

+1

@achampion Исправлено, спасибо. –

1

Первое:

>>> grades = [[1,2,3],[4,5,6]] 

Теперь у вас есть несколько вариантов:

>>> print("GRADE:", *grades[0]) 
GRADE: 1 2 3 

или:

>>> print("GRADE:", ', '.join(map(str, grades[0]))) 
GRADE: 1, 2, 3 

или, в сценарии или блока:

print("GRADE: ", end='') 
print(*grades[0], sep=', ') 

результат выше:

GRADE: 1, 2, 3 

Заменить [0] с [i] по мере необходимости.

1

strip позволяет удалить указанные символы с начала и с конца.

str(grades[i]).strip('[]') 
Смежные вопросы