python - python中列表理解的补充

标签 python list-comprehension

<分区>

我想知道是否有一种方法可以在 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/

相关文章:

python - 有条件地计算列的最大值和最小值

python - 编织 N 个等长的可迭代参数

python - 为什么以下列表理解在 Python 中不起作用?

python - 从多索引 pandas 系列创建 1 列数据框

python - 在 setup.py 中检测 pip

python - 在 setup.py 中添加自定义 wheel 文件作为依赖项?

Python:列表理解奇怪的行为

python - 如何将 Pandas 数据框显示为 flask 引导表?

python - 如何在Python中单独更新 turtle

haskell - Haskell中具有列表理解的集合的Powerset