Python,根据应用于相同长度的现有列表的条件创建新列表

标签 python list numpy

好吧,我确定有一个非常简单的方法可以做到这一点,但我对 python 生疏了,我无法找到 pythonic 的方法来做到这一点。

我有一个列表,代表一天中的几个小时:

import numpy as np
hourOfDay = np.mod(range(0, 100), 24)

然后我想创建一个新列表,它是一个更大的值 0.4,当小时在 722 之间时,并且 0.2 否则。

有几个相关帖子herehere ,但它们并不是我想要的(它们最终得到一个较短的列表,我想要相同长度的列表)。

假设我需要使用列表理解,我试过这个:

newList = [0.4 for hour in hourOfDay if hour <= 7 or hour >= 22 else 0.2]

最佳答案

您对列表的理解略有偏差。另外如果你想要 0.4当小时介于 7 之间时和 22 , 你需要 7<= hour <= 22 :

import numpy as np
hourOfDay = np.mod(range(0, 100), 24)

newList = [0.4 if 7 <= i <= 22 else 0.2 for i in hourOfDay]

>>> newList
[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.2, 0.2, 0.2, 0.2, 0.2]

关于Python,根据应用于相同长度的现有列表的条件创建新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39769958/

相关文章:

python - 升级到 sklearn 0.15 后导入错误

python - 如何在 Networkx 和 matplotlib 中标记多图的边缘?

c++ - 通过推送反转链表的顺序

list - Excel VBA 列表验证 - 特殊的运行时错误

r - 在 r 中制作不同列表条目的矩阵

python - 使用 Python 和 NumPy 生成批量的 n 维 Perlin 噪声

python - 匹配不连续/中断的字符串

python - 按因素分组并返回其他列的第二低值

python - 如何将多行 Reddit 数据(使用 praw)写入 csv/txt 文件?

python - 调整存储在数组中的所有图像的大小