iny*_*ace 1 python replace list
我有一个列表的数字列表
a = [[1,2,3,4,5,6],
[7,8,9,10,11,12],
[13,14,15,16,17,18]]
Run Code Online (Sandbox Code Playgroud)
我想将每个第 n 个元素替换为 0 以获得类似的结果(在本例中 n=3)
a = [[0,2,3,0,5,6],
[0,8,9,0,11,12],
[0,14,15,0,17,18]]
Run Code Online (Sandbox Code Playgroud)
我希望能做到这样的事情
a = [[i, j if j %n == 0 else i] for i, j in a]
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚它需要的论点。
您可以在内部列表理解中使用三元 if-并将每个元素作为元组访问索引:elseenumerate
n = 3
result = [[x if i % n else 0 for i, x in enumerate(y)] for y in a]
Run Code Online (Sandbox Code Playgroud)
应用于您的示例列表,
>>> a = [[1,2,3,4,5,6],[7,8,9,10,11,12],[13,14,15,16,17,18]]
>>> n = 3
>>> [[x if i % n else 0 for i, x in enumerate(y)] for y in a]
[[0, 2, 3, 0, 5, 6], [0, 8, 9, 0, 11, 12], [0, 14, 15, 0, 17, 18]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4663 次 |
| 最近记录: |