【发布时间】:2020-09-27 11:53:19
【问题描述】:
我有 3 个列表,其中之一是:
x_axis = ["01-01", "01-02", "01-03"]
等等。 x_axis 列表长度为 377。
我还有一个清单:
y_axis = ["01-01","01-03","01-05"]
等等。 y_list 的长度为 167。
第三个列表对应于带有特定编号的列表x_axis,其中:
hour24 = ["50","0","99"]
等等。 hour24的长度与x_axis相同,x_axis中的日期对应hour24中的数字。
我想要做的是从 hour24 列表中提取与 y_axis 中的日期相对应的数字。这意味着并非所有日期都将包括在内。我想要一个 new_hour24 列表,其中包含与 y 轴日期相同的特定数字。这里的问题是 x_axis 列表包含所有日期,而 y_axis 列表只包含一些选定的日期。
我想做什么:
我尝试用零扩展 y_axis 列表以包含与 x_axis 相同的长度:
for i in range(210):
y_axis.append("0")
一旦长度相同,我尝试使用 if/else 和 np.where numpy as:
new_hour24 = []
for i in range(0, len(x_axis)):
if(np.where((x_axis[i]==y_axis[i]))):
new_hour24.append(hour24[i])
else:
continue
但是,由于某种原因,这不起作用,我的新列表 new_hour24 包含所有原始值,就像它跳过 np.where 事实并无论如何都附加了所有值一样。
有人知道我该如何解决这个问题吗?
编辑
预期的输出是一个长度为 167 的 new_hour24 列表。列表 new_hour24 中的数字对应于 y_list 中的日期。
【问题讨论】:
-
你能发布预期的输出吗
-
我最后加了一句。不知道怎么解释呢
-
这是您发布的示例的输出
['50', '99']? -
是的,这些应该是前 2 个输出。
标签: python string list numpy if-statement