python-班級人員信息統計


輸入a,b班的名單,並進行如下統計。

輸入格式:

第1行::a班名單,一串字符串,每個字符代表一個學生,無空格,可能有重復字符。
第2行::b班名單,一串字符串,每個學生名稱以1個或多個空格分隔,可能有重復學生。
第3行::參加acm競賽的學生,一串字符串,每個學生名稱以1個或多個空格分隔。
第4行:參加英語競賽的學生,一串字符串,每個學生名稱以1個或多個空格分隔。
第5行:轉學的人(只有1個人)。

輸出格式

特別注意:輸出人員名單的時候需調用sorted函數,如集合為x,則print(sorted(x))
輸出兩個班級的所有人員數量
輸出兩個班級中既沒有參加ACM,也沒有參加English的名單和數量
輸出所有參加競賽的人員的名單和數量
輸出既參加了ACM,又參加了英語競賽的所有人員及數量
輸出參加了ACM,未參加英語競賽的所有人員名單
輸出參加英語競賽,未參加ACM的所有人員名單
輸出參加只參加ACM或只參加英語競賽的人員名單
最后一行:一個同學要轉學,首先需要判斷該學生在哪個班級,然后更新該班級名單,並輸出。如果沒有在任何一班級,什么也不做。

輸入樣例:

abcdefghijab
1   2 3 4 5 6 7 8 9  10
1 2 3 a b c
1 5 10 a d e f
a

輸出樣例:

Total: 20
Not in race: ['4', '6', '7', '8', '9', 'g', 'h', 'i', 'j'], num: 9
All racers: ['1', '10', '2', '3', '5', 'a', 'b', 'c', 'd', 'e', 'f'], num: 11
ACM + English: ['1', 'a'], num: 2
Only ACM: ['2', '3', 'b', 'c']
Only English: ['10', '5', 'd', 'e', 'f']
ACM Or English: ['10', '2', '3', '5', 'b', 'c', 'd', 'e', 'f']
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

代碼:

 

a = input()
b = input()
acm = input()
eng = input()
transfer = input()
a_class = list(set(a))
a_num = len(a_class)
b_class = b.split(" ")
acm_class = acm.split(" ")
eng_class = eng.split(" ")
for i in b_class[::]:
    if i == '':
        b_class.remove(i)

for i in acm_class[::]:
    if i == '':
        acm_class.remove(i)

for i in eng_class[::]:
    if i == '':
        eng_class.remove(i)

b_num = len(b_class)
a_b = a_class + b_class
print("Total: %d" % (a_num + b_num))
not_in_race = list(set(a_b).difference(acm_class, eng_class))
All_racers = list(set(acm_class + eng_class))
ACM_English = list(set(acm_class).intersection(set(eng_class)))
Only_ACM = list(set(acm_class).difference(set(eng_class)))
Only_English = list(set(eng_class).difference(set(acm_class)))
ACM_Or_English = list(set(Only_ACM).union(set(Only_English)))
print("Not in race: {0}, num: {1}".format(sorted(not_in_race), len(not_in_race)))
print("All racers: {0}, num: {1}".format(sorted(All_racers), len(All_racers)))
print("ACM + English: {0}, num: {1}".format(sorted(ACM_English), len(ACM_English)))
print("Only ACM: {0}".format(sorted(Only_ACM)))
print("Only English: {0}".format(sorted(Only_English)))
print("ACM Or English: {0}".format(sorted(ACM_Or_English)))
if transfer in a_class:
    a_class.remove(transfer)
    print(sorted(a_class))
elif transfer in b_class:
    b_class.remove(transfer)
    print(sorted(b_class))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM