如何将输入分配给现有列表?

How to assign an input to an existing list?

我有科目列表(英语、数学等),每个科目都有学生的名字,我的objective是给程序提供两个科目的名字,然后接收两个新的列出只出现在一个科目中的学生姓名,以及只出现在另一科目中的学生姓名。

有些同学在几个类,你看。我的问题是 python 将我的输入变量 class1 和 class2 视为字符串,并且没有将它们分配给程序中的现有列表,即使我将它们分配给列表的名称也是如此。

english=['eve','beatrice','tim','tom']
math=['tim','tom','mary','fiona']
spanish = ['tim','mary','jürgen','mike']
geography = ['farquard','fiona','shrek','donkey']

class1,class2 = input('what classes do you want to work with? ').split(',')

class1_clean = []
for name in class1:
    if name in class2:
        continue
    class1_clean.append(name)
print(class1_clean)

class2_clean = []
for name in class2:
    if name in class1:
        continue
    class2_clean.append(name)
print(class2_clean)

使用 python 字典,这里是一个例子

classes = {}

classes['english'] = ['eve','beatrice','tim','tom']
classes['math'] = ['tim','tom','mary','fiona']
classes['spanish'] = ['tim','mary','jürgen','mike']
classes['geography'] = ['farquard','fiona','shrek','donkey']

class1,class2 = input('what classes do you want to work with? ').split(',')

class1_clean = []
for name in classes[class1]:
    if name in classes[class2]:
        continue
    class1_clean.append(name)
print(class1_clean)

class2_clean = []
for name in classes[class2]:
    if name in classes[class1]:
        continue
    class2_clean.append(name)
print(class2_clean)