簡體   English   中英

Python列表元素語法

[英]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]

您可以使用列表推導map()函數。

my_list = [3, 6]
my_list = [x * 2 for x in my_list]

my_list = [3, 6]
my_list = map(lambda x: x * 2, my_list)

如果您發現需要做很多這樣的事情,也許您應該使用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]])

但是listnumpy.array之間有一個開銷轉換,因此只有在需要執行多個操作時才值得(在效率方面)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM