我有一个非唯一数字(x)数组和另一个长度相同且带有一些值(y)的数组。我想返回一个数组(z),该数组与x的长度相同,但仅在y为最大值时显示x的唯一值。 例如
weekend = set(["Saturday", "Sunday"])
有人知道我如何获得数组z吗?
答案 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)