Python-基于另一个数组中对应最大值的非唯一值数组

时间:2018-10-21 16:26:16

标签: python

我有一个非唯一数字(x)数组和另一个长度相同且带有一些值(y)的数组。我想返回一个数组(z),该数组与x的长度相同,但仅在y为最大值时显示x的唯一值。 例如

weekend = set(["Saturday", "Sunday"])

有人知道我如何获得数组z吗?

1 个答案:

答案 0 :(得分:3)

您可以使用列表推导和zip

x = [0, 2, 2, 2, 0, 3, 3]
y = [1, 1, 1.5, 1, 1, 1.5, 1]

my = max(y)

z = [xi if my == yi else 0 for xi, yi in zip(x, y)]
print(z)

输出

[0, 0, 2, 0, 0, 3, 0]

上面的列表理解与下面的for循环等效

z = []
for xi, yi in zip(x, y):
    if yi == my:
        z.append(xi)
    else:
        z.append(0)