我有一個奇怪的問題,當使用python循環。這可能很簡單,但對我來說很陌生。說如果我有一個字符串列表:Python循環的字符串 - 爲什麼'沒有'來?
seqs=['AA', 'AT']
然後我想打印列表中的元素。一種方法(方法1)是使用for循環:
for seq in seqs:
print seq
它工作正常。同時,我定義了一個「打印」功能(方法2)進行打印:
def print0(s):
print s
[print0(s) for s in seqs]
如果我使用「print0」功能打印出的值,這是輸出:
AA
AT
[None, None]
我想要知道爲什麼這裏出現兩個「無」的值,因爲當我使用方法1時,這兩個值不會出現?我想通過使用並行技術來做for循環,但是使用 'None'值,delayed
函數從joblib
包不能工作。謝謝。 更新:如果我想這樣做並行:
Parallel(n_jobs=2)(delayed(print0)(seq) for seq in seqs)
它會給出錯誤信息:
TypeError: expected string or Unicode object, NoneType found
。 ..因爲你沒有返回任何東西... –
這兩個片段在語義上是不同的:一個只是一個帶有print語句的for循環,而另一個是使用不返回任何東西的函數創建一個list-comprehension的列表) –
除了答案中提出的內容之外,如果你不想見'None's,放棄表達式的值:'_ = [print0(s)for s seqs]''。 – DyZ