我試圖在for回圈中對給定串列中的所有專案(這里是3,4,1)運行方程式。我的想法是使用串列a中的一個數字和范圍中的一個數字(串列的索引號)。
因此,第一個專案是好的,3 * 3^2 3 5 = 35。這應該運行串列中的所有專案并回傳[[35, 57, 9]],但卻得到[[35, 4, 1]]。我知道它沒有運行所有的三個專案,但是我在這里錯過了什么東西。
def calculate_f(a)。
i=0: i=a.
lis = []
for x in range(0, len(a) )。
a[i] = 3 * (a[i]**2) a[i] 5
lis.append(a)
i =1
return lis
a = [3,4, 1]
calculate_f(a)
做了三個小時,從不同的錯誤資訊中走到了這一步,但這幾乎是可行的:D
感謝您的支持。
謝謝你
uj5u.com熱心網友回復:
試試這個:-
def calculate_f(a)。
return [3 * x ** 2 x 5 for x in a ]
print(calculate_f([3,4,1] )
uj5u.com熱心網友回復:
在 Python 中,如果你想把一個函式應用到一個值的串列中,有許多更簡單的方法可以做到。
首先在一個單一的元素上定義你的函式:
>>> def f(x)。
... return 3 * x**2 x 5
現在有很多方法可以將這個函式 "映射 "到數值串列中。 例如,內置的map():
>>> m = map(f, [3, 4, 5] )
>>> m
<map在0x7f6aa8b00150>。
這實際上是回傳了一個可迭代的map物件,可以逐個回傳每個值:
這是個很好的例子。
>>> next(m)
35(m)
或者你可以把它傳遞給list():
>>> list(map(f, [3, 4, 5])
[35, 57, 85]
或者你可以使用一個簡單的for回圈,如果你想更自如地使用:
>>> m = [] 。
>>> for x in [3, 4, 5] 。
...。 m.append(f(x))
或者更高級的/簡潔的版本,一個串列理解:
>>> m = [f(x) for x in [3, 4, 5] ]
>>> m
[35, 57, 85]
或者,如果你最終想要快速的元素-明智的數字計算,請熟悉NumPy陣列:
>>> import numpy as np
>>> f(np.array([3, 4, 5] )
array([35, 57, 85] )
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/308559.html
標籤:
上一篇:無法決議software.amazon.awssdk.awscore.client.builder.AwsSyncClientBuilder這一型別。
