<分区>
我想知道是否有一种方法可以在 Python 中计算列表理解的补码。 像这样的东西:
evens = [i in range(10) if i % 2 == 0]
odds = [i in range(10) if i % 2 != 0]
有没有办法在一次通话中同时获得赔率和赔率?对于非常大的列表,或者更昂贵的 if 语句,我认为这会节省很多时间。
<分区>
我想知道是否有一种方法可以在 Python 中计算列表理解的补码。 像这样的东西:
evens = [i in range(10) if i % 2 == 0]
odds = [i in range(10) if i % 2 != 0]
有没有办法在一次通话中同时获得赔率和赔率?对于非常大的列表,或者更昂贵的 if 语句,我认为这会节省很多时间。
最佳答案
我相信之前有人问过这个问题,但我目前找不到链接。
如果您试图获得多个谓词并且您只想迭代一次原始生成器,那么您将不得不使用一个简单的for
循环。
evens = []
odds = []
for i in xrange(10):
if i % 2 == 0: evens.append(i)
else: odds.append(i)
正如@dawg 所指出的,使用巧妙的索引可以使循环内的逻辑更加简洁。
for i in xrange(10):
(evens,odds)[i%2].append(i)
关于python - python中列表理解的补充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23641284/