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

时间:2018-10-28 21:29:03

标签: python python-3.x list input variable-assignment

我有每个学科的列表(英语,数学等),每个学科都有学生的名字,我的目标是给程序指定两个学科的名称,然后再获得两个带有学生名字的新列表仅出现在一个学科中的名称,以及仅出现在另一学科中的学生的名称。

有些学生在几节课中学习。我的问题是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)

1 个答案:

答案 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)