我正在尝试将输入中的值附加到列表中的子列表中。 每个学生和姓名的数量应该在子列表中。 例如:
[[123,John],[124,Andrew]]
外部列表将是学生人数和子列表,学生的信息..
以下是我的代码:
listStudents = [[] for _ in range(3)]
infoStudent = [[]]
while True:
choice = int(input("1- Register Student 0- Exit"))
cont = 0
if choice == 1:
snumber = str(input("Student number: "))
infoStudent[cont].append(str(snumber))
name = str(input("Name : "))
infoStudent[cont].append(str(name))
cont+=1
listStudents.append(infoStudent)
if choice == 0:
print("END")
break
print(listStudents)
print(infoStudent)
如果我第一次放置第一个循环snumber = 123
,name = john
和snumber = 124
,name = andrew
,它会向我显示:[[123,john,124,andrew]]
[[123,john], [124,andrew]]
。
答案 0 :(得分:3)
您的代码可以大大简化:
input
转换为字符串,因为它们已经是字符串。以下是修改后的代码:
listStudents = []
while True:
choice = int(input('1- Register Student 0- Exit'))
if choice == 1:
snumber = input('Student number: ')
name = input('Name : ')
listStudents.append([snumber, name])
if choice == 0:
print('END')
break
print(listStudents)
答案 1 :(得分:0)
您的代码可以更加pythonic,也可以使用一些基本的错误处理。在while循环中创建内部列表,并简单地附加到外部学生列表。这应该有用。
students = []
while True:
try:
choice = int(input("1- Register Student 0- Exit"))
except ValueError:
print("Invalid Option Entered")
continue
if choice not in (1, 9):
print("Invalid Option Entered")
continue
if choice == 1:
snumber = str(input("Student number: "))
name = str(input("Name : "))
students.append([snumber, name])
elif choice == 0:
print("END")
break
print(students)