Nak*_*hts 14 python list python-3.x
对列表中的每个第n个值执行算术运算的最pythonic方法是什么?例如,如果我从list1开始:
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)
我想在每个第二项添加1,这将给出:
list2 = [1, 3, 3, 5, 5, 7, 7, 9, 9, 11]
Run Code Online (Sandbox Code Playgroud)
我试过了:
list1[::2]+1
Run Code Online (Sandbox Code Playgroud)
并且:
for x in list1:
x=2
list2 = list1[::x] + 1
Run Code Online (Sandbox Code Playgroud)
gtl*_*ert 16
您可以使用slicing列表推导如下:
In [26]: list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
In [27]: list1[1::2] = [x+1 for x in list1[1::2]]
In [28]: list1
Out[28]: [1, 3, 3, 5, 5, 7, 7, 9, 9, 11]
Run Code Online (Sandbox Code Playgroud)
numpy允许您也使用+=切片操作:
In [15]: import numpy as np
In [16]: l = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
In [17]: l[1::2] += 1
In [18]: l
Out[18]: array([ 1, 3, 3, 5, 5, 7, 7, 9, 9, 11])
Run Code Online (Sandbox Code Playgroud)
>>> list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> [v+1 if i%2!=0 else v for i,v in enumerate(list1)]
[1, 3, 3, 5, 5, 7, 7, 9, 9, 11]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1649 次 |
| 最近记录: |