如何在列表中将第10个数字除以10?

时间:2019-04-24 15:16:11

标签: python-2.7

我有一个包含一百万个数字的列表(例如Makefile,其中每10个数字应为应乘数字的10倍。我想更正此列表,以使每10个数字除以10。

我尝试过[1,2,3,4,5,6,7,8,9,100,11,12,13,14,15,16,17,18,19,200.......],但似乎不适用于列表。

2 个答案:

答案 0 :(得分:2)

您可以在列表理解中使用条件来实现此目的,并以元素的位置为条件(通过enumerate):

X = [1,2,3,4,5,6,7,8,9,100,11,12,13,14,15,16,17,18,19,200]

# Quotient on 9 because lists are 0-indexed
y = [x/10. if i%10==9 else x for i, x in enumerate(X)]

print(y)
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10.0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20.0]

答案 1 :(得分:0)

您可以通过分配切片来就地执行此操作:

a = list(range(30))
a[::10] = [n//10 for n in a[::10]]

但是,对于非常大的数组,使用NumPy可能会更好:

import numpy as np
a = np.arange(30)
a[::10] //= 10