在遍歷文本文件和列表上的迭代期間,我發現了for
循環的意外行爲。 文本文件test.txt
只由兩個字符串組成:1)He said:
和2)We said:
。 首先for
+ for
環Python不等於'迭代'
file_ = open('c:\\Python27\\test.txt', 'r')
list_ = ['Alpha','Bravo','Charlie']
try:
for string in file_:
for element in list_:
print string, element
except StandardError:
print 'Ooops'
回報絕對預見的結果是:
He said: Alpha
He said: Bravo
He said: Charlie
We said: Alpha
We said: Bravo
We said: Charlie
但是如果for
順序改變爲
file_ = open('c:\\Python27\\test.txt', 'r')
list_ = ['Alpha','Bravo','Charlie']
try:
for element in list_:
for string in file_:
print string, element
except StandardError:
print 'Ooops'
結果是完全不同的:
He said: Alpha
We said: Alpha
看起來像第一個for
變得不可戰勝。爲什麼?
是所有的代碼? – Onilol
'lines = file.readlines()'然後只是在'lines'列表中進行迭代。 –
[davidism](http://stackoverflow.com/users/400617/davidism), 感謝您的評論。前期問題非常緊密,但對我而言,它有一點不同。 –