[英]Evaluating an item of a certain index in a list within a list
我正在編寫一個程序,其中列出學生,他們的學位和課程以及其他內容,供瀏覽。 我一直無法解決在列表列表中迭代特定索引項的方式。 列表列表包含如下學生信息:
[['2004S','3001','Johnson John','149','HETY2','STIL'],
['2004S','3002','Steveson Steve','224','HETY2','SEIT'],
['2004S','3003','Jackson Jack','270','HETY2','SEIT'],
...
['2007S','3124','Ericsson Eric','286','HETY2','SPII']]
我想要做的是使用從Entry小部件獲得的輸入來評估每個列表的第一項。 第一項是學生開始學習的年份。 因此,在“輸入”字段中,我詢問用戶想要瀏覽哪一年的學生。 如果該值的值為true,則將整個列表追加到另一個列表中,稍后將在屏幕上顯示所有列表。 像這樣:
class Model():
...
def searched_year(self, year):
for object in self.student.parse_student_info():
for elem in range(len(self.student.parse_student_info())):
matching = [object for elem in object if str(year) in elem]
return matching
parse_student_info()
從Student
類中使用'student'對象調用parse_student_info()
方法,該方法返回列表的整個列表。 參數“年份”是我從Entry小部件中獲得的StringVar
。 該代碼每次都返回一個空列表(並且尚未將搜索限制為索引)。 最好的方法是什么?
編輯:
更基本的代碼:
class Student():
...
def parse_student_info(self):
with open('opiskelijat.txt', 'r') as src:
separ = src.readlines()
studentinfo = [elem.strip().split(';') for elem in separ]
return studentinfo
這是Student
類中的parse_student_info()
方法。 它返回您在上面看到的列表列表。 它按預期工作。 下面是search_year()
方法,該方法調用了該方法。
UIController():
...
def search_year(self, year):
mode = Model()
return mode.searched_year(year)
UIController
類控制包含按鈕和其他小部件的所有不同Frame
類,並且還與Model
類進行交互,該Model
類處理來自Student
, Course
和Degree
類的信息。
到目前為止,該方法仍會打印一個空列表。
目標是獲取parse_student_info()的輸出並返回一個列表列表,其中每個子列表的第一個元素與給定值匹配,是嗎? 嘗試這個:
def searched_year(self, year):
return [rec for rec in self.student.parse_student_info() if rec[0] is year]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.