我有一堆列表的模塊(比如STUDENT_DATA),我在我的文件中導入。所有的名單都是學生類型[1-100]。現在取決於用戶輸入,我希望遍歷相應的列表。可以說,用戶輸入10,然後我想打印列表student10的內容。我如何去做這件事?如何從Python模塊根據用戶輸入打開列表
Input in variable i
for x in student_data.student+i:
print x
我有一堆列表的模塊(比如STUDENT_DATA),我在我的文件中導入。所有的名單都是學生類型[1-100]。現在取決於用戶輸入,我希望遍歷相應的列表。可以說,用戶輸入10,然後我想打印列表student10的內容。我如何去做這件事?如何從Python模塊根據用戶輸入打開列表
Input in variable i
for x in student_data.student+i:
print x
溫斯頓·尤爾特是什麼正確辦法做到這一點是絕對正確的。
但是,如果你鎖定到現有的數據結構,你想要的是使用getattr函數......這允許指定屬性的編程訪問。在你的情況,getattr(student_data, "student%d" % (i,))
您應該將所有列表放入一個大列表中。
然後你就可以使用標準的student_data.student_lists[index]
得到一個單獨的列表。
我總是猶豫,告訴人們如何做這樣的東西,我擔心他們會濫用它。 – 2011-04-18 20:42:31
這確實如此,getattr是危險的可濫用的。但我記得(我)學習GETATTR幫我我的框架Python對象的概念和屬性的訪問,這是不是你不能在很戳(如C結構的訪問)的一些語義的事情,但是是一個VM你可以調用自己的操作。我主要發佈它,以便他知道如何以正確的形式正確溝通'student_data.student + i';即使學習使用它只是來自痛苦的經歷:) – 2011-04-19 13:43:34