Python中enumerate()的使用
如何在一场面试中展现你对Python的coding能力?| 技术头条
这篇文章中提到了在python中使用enumerate()可以解决FizzBuzz问题:即用“fizz”替换所有可被3整除的整数,用“buzz”替换所有可被5整除的整数,将所有可被3和5整除的整数替换为“fizzbuzz”。
numbers = [45, 22, 14, 65, 97, 72]
for i, num in enumerate(numbers):
if num % 3 == 0 and num % 5 == 0:
numbers[i] = 'fizzbuzz'
elif num % 3 == 0:
numbers[i] = 'fizz'
elif num % 5 == 0:
numbers[i] = 'buzz'
print(numbers)
>> ['fizzbuzz', 22, 14, 'buzz', 97, 'fizz']
可以看出,enumerate()的作用是返回列表中元素的索引号和值。
受此启发,enumerate()函数可以用在一类特定的数据归一化中。
通常的数据归一化方式为:Python numpy 归一化和标准化 代码实现
但在某些数据归一化处理时,需要将大于1的数据值设为1, 将小于-1的数据值设为-1,这种情况下便可使用enumerate()函数处理。
def normalization(data):
_range = np.max(abs(data))
return data / _range
def norm_enumerate(data):
for i, num in enumerate(data):
if num > 1:
data[i] = 1
elif num < -1:
data[i] = -1
return data
def standardization(data):
mu = np.mean(data, axis=0)
sigma = np.std(data, axis=0)
return (data - mu) / sigma