1
分配相同的值到不同的位置在列表中假設我有蟒蛇以下列表:在python
x = [1,2,3,4,5,6,7,8,9,10]
我想值0分配給名單上的特定位置,例如位置0,7和9.我可以在不使用循環的情況下在python中執行下列操作嗎?
x[0,7,9] = 0
分配相同的值到不同的位置在列表中假設我有蟒蛇以下列表:在python
x = [1,2,3,4,5,6,7,8,9,10]
我想值0分配給名單上的特定位置,例如位置0,7和9.我可以在不使用循環的情況下在python中執行下列操作嗎?
x[0,7,9] = 0
你去那裏:
x[0] = x[7] = x[9] = 0
您也可以在更廣泛的和靈活的方式與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])
,但是這可能不是你在找什麼因爲,numpy是一個稍微更先進的東西。
謝謝。我太被Matlab弄壞了,並且正在尋找一種比for循環更優雅的方式來做到這一點。但如果我可以用這種方式做到這一點,那麼我也可以使用它。謝謝。 – siva82kb
如果你被Matlab弄壞了,那麼'numpy'是_definitely_的方式去爲你。你會發現這個鏈接特別有用:http://www.scipy.org/NumPy_for_Matlab_Users。 – kirelagin
太棒了!非常感謝你。 – siva82kb