我想更改列表的最大值,如下所示:
a = [2, 2, 4, 5]
max(a) = 10
print(a)
但始终如一:SyntaxError: can't assign to function call
有人知道如何更改最大值吗?
感谢大家的帮助!我想用另一个数字替换数组的最大值,这将是我的新最大值。
答案 0 :(得分:2)
如果要更改数组的所有最大值,例如[1,2,5,5]到[1,2,new_max,new_max],则可以执行以下操作:
a = np.array([1, 2, 5, 5])
a[a == a.max()] = new_max
答案 1 :(得分:0)
Python没有一个函数可以告诉你最大元素的索引(而不是C ++ std::max_element
或numpy argmax
正在做什么),所以你需要:
mx = max(a)
ix = a.index(mx)
a[ix] = 10
您可以将这三个步骤合并为一行
a[a.index(max(a))] = 10
请注意,这不会确保在操作max(a)
更改后...例如:
a = [10, 30, 20, 30]
a[a.index(max(a))] = 15
# now a is [10, 15, 20, 30] and max is still 30
如果要将所有最大元素更改为新值,则需要显式循环或使用理解
mx = max(a)
for i in range(len(a)):
if a[i] == mx:
a[i] = new_max
答案 2 :(得分:0)
假设a = [1,2,3,4]
并且您想要将max更改为100
for i in range(len(a)):
if a[i] == max(a):
a[i] = 100