你如何用int分列表中的每个元素?

我只是想用int来分隔列表中的每个元素。

myList = [10,20,30,40,50,60,70,80,90] myInt = 10 newList = myList/myInt 

这是错误的:

 TypeError: unsupported operand type(s) for /: 'list' and 'int' 

我明白为什么我收到这个错误。 但我很沮丧,我找不到解决scheme。

还试过:

 newList = [ a/b for a, b in (myList,myInt)] 

错误:

 ValueError: too many values to unpack 

预期结果:

 newList = [1,2,3,4,5,6,7,8,9] 

编辑:

下面的代码给了我预期的结果:

 newList = [] for x in myList: newList.append(x/myInt) 

但有没有更容易/更快的方式来做到这一点?

惯用的方法是使用列表理解:

 myList = [10,20,30,40,50,60,70,80,90] myInt = 10 newList = [x / myInt for x in myList] 

或者,如果您需要维护对原始列表的引用:

 myList[:] = [x / myInt for x in myList] 

你首先尝试的方式实际上可能是numpy :

 import numpy myArray = numpy.array([10,20,30,40,50,60,70,80,90]) myInt = 10 newArray = myArray/myInt 

如果你用长列表进行这样的操作,特别是在任何科学计算项目中,我真的会build议使用numpy。

 >>> myList = [10,20,30,40,50,60,70,80,90] >>> myInt = 10 >>> newList = map(lambda x: x/myInt, myList) >>> newList [1, 2, 3, 4, 5, 6, 7, 8, 9] 
 myList = [10,20,30,40,50,60,70,80,90] myInt = 10 newList = [i/myInt for i in myList]