2011-08-29 60 views
1

編輯:對不起,每個人都感到困惑。這個問題的第一個版本非常混亂,我決定刪除它。用Python清理數據(用於聲明)

這是我的問題了。

如何將10,000個學生姓名(文本文件)的列表翻譯爲可迭代的列表?

我最初說的字典,但我其實是指名單,我很抱歉。

+0

我真的不明白你:)「他們都指同一班」,誰是「他們」?也是「這些變量中的這些數據」? – steabert

+0

我也有點困惑,對我來說,好像你想要一個多維字典,除非它增加了類的統計數據,那麼你只需要將CSV每行分割(因爲你可以定義delim)並使用'dictionary.has_key( 「Statistics_1101」)'如果它沒有它,則將其值加1,如果是,則增加1. –

+0

你想要做什麼?你想獲得所有學生在統計班上的姓名,還是想要獲得所有人登記的班級,還是想要做其他事情? – inspectorG4dget

回答

3

假設每個學生的名字是自己的路線,這是它聽起來像,這是那麼容易,因爲

students = open('list-of-students.txt').readlines() 

這將使students是所有的學生都在文件中的list

+0

'list(open('list-of-students.txt'))'也適用。它幾乎沒有比這更容易:)但我寧願使用with-block來打開文件。 –

1

這取決於你想要做什麼。

但是這樣的事情應該工作:

with file("filename-with-students.txt") as f: 
    for line in f: 
     ## now, the name "line" refers to a string containing a line in your file 

第一行,with file(...) as f,打開文件,並分配「文件描述符」這個名字f。使用with聲明意味着它完成後會自動關閉。

第二行for line in f利用了您可以在文件上一次一行的iterate。因此,你可以做任何你想要的字符串line所指的。

+0

如果你真的想建立列表,你可以使用'list(f)'。但這是迭代不需要的:) –