我有一个奇怪的问题,当使用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