Как назначить вход в существующий список? - PullRequest
0 голосов
/ 29 октября 2018

У меня есть списки предметов (английский, математика и т. Д.) С именами студентов в каждом, и моя цель - дать программе названия двух предметов, а затем получить два новых списка с именами студентовкоторые появляются только по одному предмету, и имена учеников, которые появляются только по другому предмету.

Видите ли, некоторые студенты находятся в нескольких классах.Моя проблема в том, что 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 голосов
/ 29 октября 2018

Используйте словарь 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)
...