2010-10-04 53 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”。