簡體   English   中英

如何比較另一個列表中的單個項目?

[英]How do i compare individual items in another list?

我很新,還在學習 python。 我需要知道如何將列表中的項目與另一個列表進行比較。

mc_zip = zip(name, class)
mc_list = list(mc_zip)
class_zip = zip(class_name, class_number)
class_list = list(class_zip)
print(mc_list)
print(class_list)

output

mc_list = [('AA', 5537), ('AA', 5620), ...., ('AB', 5531)]
class_list = [('AA', 5537), ('AA', 1244), ...., ('AZ', 4545)]

mc_list是沒有參加 class 的學生,而class_list是學校的學生列表。 我想知道如何將mc_list的名稱與 class_list 進行比較,然后能夠從class_listmc_list具有相同名稱的數據。 這樣我就可以知道特定名稱所占用的類。 新的 output 應該是:

mcstudentclass = [('AA', 5537),('AA', 5540), ('AA', 1244),('AB', 5531), ('AB', 6636),.....]

如果您想知道 ('AB', 6636) 或 ('AA', 5540) 來自哪里。 它來自 class_list the.... (....) 代表了幾個具有不同 class 編號的重復名稱,反之亦然。 抱歉,如果有點難以理解。

如果您需要人們從他們注冊的課程列表和他們錯過的課程列表中獲得的課程列表,這里有兩個選項,它們以您提供的相同壓縮格式開頭。

names = ["Alice", "Bob", "Charlie"]
classes = [1, 2, 3]
registered = [("Alice", 1), ("Alice", 2), ("Alice", 3), ("Bob", 2), ("Bob", 3), ("Charlie", 1), ("Charlie", 3)]
missed = [("Alice", 1), ("Charlie", 3)]
# 1. list comprehension
attended = [p for p in registered if p not in missed]
print(attended)
# 2. set difference
attended = set(registered) - set(missed)
print(attended)

將 class 列表放入字典中。 將 mc_list 與它進行比較。 這將節省大量時間。

如果將列表與列表進行比較,則必須遍歷列表。 我查字典不需要那個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM