2015-07-03 81 views
2

我試圖去解析一些文本並尋找某些模式。我正在尋找的一種模式是包含'AS'和'。'的字符串。Python如果語句在''中使用'和'

假設我有一個字符串列表,我使用它來查找和追加選擇字符串到一個新的列表。

list1 = [] 

for ngram in bigrams: 
     if ' AS ' and '.' in ngram: 
      list1.append(ngram) 

這不是工作,這似乎是運作更像是:

if ' AS ' or '.' in ngram: 

有什麼建議?

回答

2
if ' AS ' and '.' in ngram: 

被解析爲

if (' AS ') and ('.' in ngram): 

即,

if (True) and ('.' in ngram): 

這相當於剛剛if '.' in ngram

事實上,你不能在巴茲使用「foo和bar」。嘗試改爲:

if ' AS ' in ngram and '.' in ngram: 

甚至更​​好,使用列表中的理解和改變那些5行代碼到一個:

list1 = [ngram for ngram in bigrams if ' AS ' in ngram and '.' in ngram]