簡體   English   中英

評估列表中列表中某個索引的項目

[英]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類處理來自StudentCourseDegree類的信息。

到目前為止,該方法仍會打印一個空列表。

目標是獲取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.

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