我有這行代碼:Python的if語句
bitext = [[sentence.strip().split()
for sentence in pair if len(sentence) < 100]
for pair in zip(open(c_data), open(e_data))[:opts.num_sents]]
c_data
是中國句子
e_data
文件是用英語句子的文件。
bitext
應該是一個包含成對的英文和中文句子的列表,它們是彼此之間的翻譯。
由於這兩個數據文件都很大,所以我想通過僅考慮一定長度以下的句子來降低我的代碼的複雜度。長度以字符計量。
舉一個例子,
我在這裏指定長度爲100
。 :opts.num_sents
是一個變量,指出應該考慮數據文件中的多少個句子。
問題/錯誤
如果一箇中國的句子會,說,95個字符,而英語句子105個字符,bitext
將只與中國句子進行更新。
但我希望代碼只添加一對句子,如果他們都在規定的長度。
我該怎麼做?
很抱歉,您的問題很難理解,您究竟在做什麼?您的問題標題似乎與您的問題沒有任何關係。 – 2013-03-04 10:24:56
這不是for循環中的* if語句* - 它是[list comprehension](http://www.youtube.com/watch?v=pShL9DCSIUw)。 – 2013-03-04 10:26:27
忘記標題,我不知道這被稱爲列表理解。我的問題是關於如何處理其中一個滿足'len(句子)<100'的對,但另一個不滿足。 – Johanna 2013-03-04 10:44:07