2015-06-05 166 views
1

我解析JSON對象和發現的代碼,我有點明白這個樣品線但希望更詳細的解釋:python中for循環中的[]括號是什麼意思?

for record in [x for x in records.split("\n") if x.strip() != '']: 

我知道它是劈裂記錄由新線獲得個人記錄性格,但我想知道爲什麼它看起來如此複雜?是這樣的情況,我們不能有這樣的事情:

那麼括號做什麼[]?而爲什麼我們在x for x in records.split....

感謝

+0

這是一個列表理解,請參閱相關:http://stackoverflow.com/questions/16341775/what-is-the-advantage-of-a-list-comprehension-vs-for-loop – EdChum

+0

EdChum是正確的(杜);請注意,它不需要特別處理循環。這種表示法是創建列表的簡單方法。循環也可以遍歷列表。 –

+2

感謝您的雙方投入,在旁註中,人們愛在這裏投票的問題。如果你打算投下一個問題,那麼我認爲你應該留言,說明原因。我認爲這是一個有效的編程問題,我無法在其他地方找到或知道如何搜索。 –

回答

6

在你的榜樣「括號」從舊構建一個新的列表,這就是所謂的list comprehension

與[F(X)對於x在XS如果條件]的基本思想是:

def list_comprehension(xs): 
    result = [] 
    for x in xs: 
     if condition: 
      result.append(f(x)) 
    return result 

的F(X)可以是任何表達式,含有x與否。

1

這是一個列表解析,創建與在飛行一定的條件清單的一種巧妙的方法有兩次x。

你可以把它的這個簡稱:

a = [] 
for record in records.split("\n"): 
    if record.strip() != '': 
     a.append(record) 

for record in a: 
    # do something 
1

方括號([])通常用Python表示一個列表。

+0

是的,他們表示一個列表,但還有什麼? – Zizouz212

相關問題