将相同的值分配给python中列表中的不同位置

siv*_*2kb 1 python list

假设我在python中有以下列表:

x = [1,2,3,4,5,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)

我想将值0分配给列表中的特定位置,例如位置0,7和9.我可以在python中执行类似下面的操作而不需要循环吗?

x[0,7,9] = 0
Run Code Online (Sandbox Code Playgroud)

kir*_*gin 7

你去:

x[0] = x[7] = x[9] = 0
Run Code Online (Sandbox Code Playgroud)

您还可以numpy使用更通用和灵活的方式对阵列执行此操作:

>>> import numpy as np
>>> x = np.array([1,2,3,4,5,6,7,8,9,10])
>>> indices = [0,7,9]
>>> x[indices] = 0  # or just x[[0,7,9]] = 0
>>> x
array([0, 2, 3, 4, 5, 6, 7, 0, 9, 0])
Run Code Online (Sandbox Code Playgroud)

但这可能不是你想要的,因为numpy是一个稍微高级的东西.

  • 如果你被Matlab宠坏了,那么`numpy`就是_definitely_的方式去找你.你会发现这个链接特别有用:http://www.scipy.org/NumPy_for_Matlab_Users. (2认同)