我有每个学科的列表(英语,数学等),每个学科都有学生的名字,我的目标是给程序指定两个学科的名称,然后再获得两个带有学生名字的新列表仅出现在一个学科中的名称,以及仅出现在另一学科中的学生的名称。
有些学生在几节课中学习。我的问题是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)
答案 0 :(得分:2)
使用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)