[英]Python list element syntax
我是python的新手,我想使用語法
a = [3, 6]
for x in a:
x *= 2
因此“ a”為[6,12]
...但這似乎不起作用。 我應該如何盡可能簡單地編寫代碼以獲得所需的效果?
以下代碼 更改 創建一個新的int對象並重新綁定x
,而不更改列表的項目。
for x in a:
x *= 2
要更改列表的項目,應使用a[..] = ..
for i in range(len(a)):
a[i] *= 2
您也可以使用列表理解作為@Hyperboreus的答案。
要更改嵌套列表的值,請使用嵌套循環。
for i in range(len(a)):
for j in range(len(a[i]):
a[i][j] *= 2
使用enumerate
替代方法。
for i, x in enumerate(a):
a[i] = x * 2
您可以使用此:
a = [x * 2 for x in a]
對於嵌套列表:
a = [ [1,2,3], [4,5,6] ]
a = [ [x * 2 for x in x] for x in a]
如果您發現需要做很多這樣的事情,也許您應該使用numpy
>>> import numpy as np
>>> a = np.array([3, 6])
>>> a *= 2
>>> a
array([ 6, 12])
2個(或更多)維數組的作用相同
>>> a = np.array([[3, 6],[4,5]])
>>> a *= 2
>>> a
array([[ 6, 12],
[ 8, 10]])
但是list
和numpy.array
之間有一個開銷轉換,因此只有在需要執行多個操作時才值得(在效率方面)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.