我解析JSON對象和發現的代碼,我有點明白這個樣品線但希望更詳細的解釋:python中for循環中的[]括號是什麼意思?
for record in [x for x in records.split("\n") if x.strip() != '']:
我知道它是劈裂記錄由新線獲得個人記錄性格,但我想知道爲什麼它看起來如此複雜?是這樣的情況,我們不能有這樣的事情:
那麼括號做什麼[]?而爲什麼我們在x for x in records.split....
感謝
我解析JSON對象和發現的代碼,我有點明白這個樣品線但希望更詳細的解釋:python中for循環中的[]括號是什麼意思?
for record in [x for x in records.split("\n") if x.strip() != '']:
我知道它是劈裂記錄由新線獲得個人記錄性格,但我想知道爲什麼它看起來如此複雜?是這樣的情況,我們不能有這樣的事情:
那麼括號做什麼[]?而爲什麼我們在x for x in records.split....
感謝
在你的榜樣「括號」從舊構建一個新的列表,這就是所謂的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與否。
這是一個列表解析,創建與在飛行一定的條件清單的一種巧妙的方法有兩次x。
你可以把它的這個簡稱:
a = []
for record in records.split("\n"):
if record.strip() != '':
a.append(record)
for record in a:
# do something
這是一個列表理解,請參閱相關:http://stackoverflow.com/questions/16341775/what-is-the-advantage-of-a-list-comprehension-vs-for-loop – EdChum
EdChum是正確的(杜);請注意,它不需要特別處理循環。這種表示法是創建列表的簡單方法。循環也可以遍歷列表。 –
感謝您的雙方投入,在旁註中,人們愛在這裏投票的問題。如果你打算投下一個問題,那麼我認爲你應該留言,說明原因。我認爲這是一個有效的編程問題,我無法在其他地方找到或知道如何搜索。 –