我有兩個清單:
coursestaken = ['COMP 1002', 'ECON 1020', 'ENGL 1110', 'MATH 1001', 'MATH 2050', 'BUSI 1101', 'MATH 2000', 'MATH 2050', 'OCSC 1000', 'STAT 2500', 'BUSI 1210', 'BUSI 1600', 'BUSI 3310', 'COMP 1003', 'BUSI 1000', 'COMP 1001', 'ECON 1010', 'ENGL 1090', 'MATH 1000']
和
course_grade_final = ['COMP 1002 Intro to Logic for Comp Sci B 65', 'ECON 1020 Intro to Macroeconomics A 89', 'ENGL 1110 Crtcl Rdng & Wrtng in Rhetori C 60', 'MATH 1001 Calculus II B 67', 'MATH 2050 Linear Algebra I F 44', 'BUSI 1101 Principles of Accounting A 89', 'MATH 2000 Calculus III A 80', 'MATH 2050 Linear Algebra I A 83', 'OCSC 1000 Exploration of World Ocean A 89', 'STAT 2500 Stats/Busi&Art Students I B 77', 'BUSI 1000 Intro to Business in Society B 78', 'COMP 1001 Intro to Programming B 69', 'ECON 1010 Intro to Microeconomics A 88', 'ENGL 1090 CRW: Telling Stories C 62', 'MATH 1000 Calculus I B 68']
我在他們身上運行這個回圈,它應該檢查 coursetaken 中的課程是否在 course_grade_final 中有成績,并按順序將它們一起回傳,如果課程沒有成績,也就是(正在進行中),它??會跳過它:-
allcourses = []
for x in coursestaken:
for y in course_grade_final:
if x in y:
allcourses.append(x)
allcourses.append(y[-2:])
else:
continue
輸出是:
['COMP 1002', '65', 'ECON 1020', '89', 'ENGL 1110', '60', 'MATH 1001', '67', 'MATH 2050', '44', 'MATH 2050', '83', 'BUSI 1101', '89', 'MATH 2000', '80', 'MATH 2050', '44', 'MATH 2050', '83', 'OCSC 1000', '89', 'STAT 2500', '77', 'BUSI 1000', '78', 'COMP 1001', '69', 'ECON 1010', '88', 'ENGL 1090', '62', 'MATH 1000', '68']
問題是 MATH 2050 由于某種原因翻了一番,我不明白為什么,正確的串列只有兩個 MATH 2050,一個后跟 44,一個后跟 83。
圖片
uj5u.com熱心網友回復:
您正在遍歷 MATH 2050 的每個實體的整個串列,因此它會同時找到兩個結果,結果都是四個。
您可能只是想洗掉您在課程中的額外“數學 2050”
uj5u.com熱心網友回復:
文本MATH 2050在第一和第二中被提及兩次。因此,嵌套的 for 回圈可以獲得 2 X 2 = 4 條匹配記錄。
First List | Second List
-----------|------------------------------------
'MATH 2050'| 'MATH 2050 Linear Algebra I F 44')
'MATH 2050'| 'MATH 2050 Linear Algebra I A 83')
我沒有完整了解您正在做什么,但我猜您想要執行以下操作
>>> for x, y in zip(coursestaken, course_grade_final):
... print((x, y[-2:]))
...
('COMP 1002', '65')
('ECON 1020', '89')
('ENGL 1110', '60')
('MATH 1001', '67')
('MATH 2050', '44')
('BUSI 1101', '89')
('MATH 2000', '80')
('MATH 2050', '83')
('OCSC 1000', '89')
('STAT 2500', '77')
('BUSI 1210', '78')
('BUSI 1600', '69')
('BUSI 3310', '88')
('COMP 1003', '62')
('BUSI 1000', '68')
>>> for x, y in zip(coursestaken, course_grade_final):
... allcourses.append((x, y[-2:]))
...
>>> allcourses
[('COMP 1002', '65'), ('ECON 1020', '89'), ('ENGL 1110', '60'), ('MATH 1001', '67'), ('MATH 2050', '44'), ('BUSI 1101', '89'), ('MATH 2000', '80'), ('MATH 2050', '83'), ('OCSC 1000', '89'), ('STAT 2500', '77'), ('BUSI 1210', '78'), ('BUSI 1600', '69'), ('BUSI 3310', '88'), ('COMP 1003', '62'), ('BUSI 1000', '68')]
提示:
- 檢查字串函式,如
.startswith - 檢查python正則運算式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/439256.html
上一篇:計算唯一串列項
下一篇:比較串列中的元素
