對於python的新手來自C++ 例如,在python中,有沒有辦法讓它替換列表位置f [n-1]中的元素,執行數學運算並將其添加到清單?是否有任何方法使用列表中的數字來執行操作?
f = [1, 1-x]
for n in range (1,5):
f[n+1] = simplify((x*f[n-1])/n)
print(f[n])
對於python的新手來自C++ 例如,在python中,有沒有辦法讓它替換列表位置f [n-1]中的元素,執行數學運算並將其添加到清單?是否有任何方法使用列表中的數字來執行操作?
f = [1, 1-x]
for n in range (1,5):
f[n+1] = simplify((x*f[n-1])/n)
print(f[n])
這是你想要的效果嗎?它在每次迭代中擴展列表f,一個元素。我刪除了簡化調用,因爲我期望它不會真的影響你的Python機制的問題。
x = 0.4
f = [1, 1-x]
for n in range(1,5):
f.append((x*f[n-1])/n)
print(f)
從這個輸出是現在
[1, 0.6, 0.4, 0.12, 0.053333333333333344, 0.012]
你已經澄清一點,這裏是你的字符串處理的起點。
def simplify(expr):
return expr
f = ["1", "1-x"]
for n in range(1, 5):
f.append(simplify("x*(" + f[n-1] + ")/n"))
print(f[n])
從這個輸出是
1-x
x*(1)/n
x*(1-x)/n
x*(x*(1)/n)/n
這讓你減少的規劃問題來攻擊:如何減少的東西,如 「X *(X *」 到 「X ** 2」 。你在這裏解決了一些解析問題:你可能必須指定一個語法並對你的代碼進行合理的攻擊,以便到達下一個可以幫助的地方。
我想要的是讓x未知,並讓列表繼續像[1,1-x,x-x ** 2/2,.....]。那可能嗎? –
然後請完成您的發佈以反映實際問題。請參閱[MCVE](http://stackoverflow.com/help/mcve)和[關於主題](http://stackoverflow.com/help/on-topic)。如果您嘗試進行符號表示,則需要使用** simplify **中的特定於域的字符串處理器,並且您的列表需要保存字符串,而不是數字值。 – Prune
@Joe_Rose我不知道我明白你想要什麼。如何在C++中發佈相應的解決方案,這樣問題就不那麼模糊了? –
你應該避免修改列表而迭代它可能是一個列表理解? –
f.append(someelement)'將添加一個元素到一個lis噸。 @PauloScardine,只要他正在使用索引,那麼它的罰款 –
@RNar不,如果他刪除了一個元素,例如...這就是爲什麼它在Python中皺起眉頭。 –