2010-10-04 55 views
-3
dbH = [] 
string = ("%s/t%s/t%s/t%s") % (i1, i2, i3, i4) 

originally, 
i1 = blah 
i2 = doubleblah 
i3 = tripleblah 
i4 = 0 

... 

如何在以後更換i4中的值? ex。 現在 DBH [1] =( 「亞當\ tJack \ tJill \ tNULL」) 稍後 DBH [1] =( 「亞當\ tJack \ tJill \ tJohn」)替換陣列中的物品

+0

「原始數組」是什麼意思? – JoshD 2010-10-04 19:05:07

+3

你的問題很混亂。你有什麼嘗試?作爲輸出你期望什麼?你作爲輸出得到了什麼? – 2010-10-04 19:06:01

+0

只是將非代碼放在代碼標籤中並不能幫助我們理解您實際嘗試過的內容。你的例子沒有編譯; dbH沒有被引用,你似乎很迷惑\ t和/ t,等等。如果你希望字符串在i4變化時奇蹟般的改變,你需要定義一個函數,它需要i1,i2,i3,i4並返回一個字符串,並且引用該字符串而不是字符串。 – 2010-10-04 19:15:59

回答

2
(i1, i2, i3, i4) 

是一個元組,並且因此不可變根據定義,所以它不能改變。

使用列表:

mylist = [i1, i2, i3, i4] 

,然後做

mystring = "%s/t%s/t%s/t%s" % tuple(mylist) 

然後你可以改變mylist[3]到任何你想要的和重做前面的步驟。

+0

感謝您的詳細解釋 – user428370 2010-10-04 19:20:43

+0

顯然你是一個心靈讀者。 – LarsH 2010-10-04 22:35:03

0

如果I4被重新分配: 字符串=( 「%S/T%S/T%S/T%S」)%(I1,I2,I3,I4) DBH [1] =的newval

0

你的意思是如何讓i1,i2,i3和i4返回到字符串中?

(i1, i2, i3, i4) = string.split("\t") 
1

很好地解決這個問題,你有2種選擇:
1.使用

TEMPLATE = "%s/t%s/t%s/t%s" 

,然後重新創建的字符串時,您需要:

string = TEMPLATE % your_tuple 


2.創建一個函數,根據當前的i4返回最新的字符串。在代碼中使用它而不是直接調用「string」。