Python 无法联接数组元素并替换为必需的条目,但给出了TypeError:没有足够的参数用于格式字符串错误

Python 无法联接数组元素并替换为必需的条目,但给出了TypeError:没有足够的参数用于格式字符串错误,python,python-2.7,Python,Python 2.7,a。我有两个数组,一个带有%d和%s,另一个数组具有要替换的值。 B我尝试分别连接数组元素,并希望打印最终替换的值 #!/usr/intel/bin/python2.7 import Tkinter import Tkinter as tk le_temp_list = ['%s', '[%s-1:0]', '[%d:0]', '%s'] le_temp_list_val = ['reg', '`ADR_WTH', 31, 'green'] ar = `' '.join([str(i) f

a。我有两个数组,一个带有%d和%s,另一个数组具有要替换的值。 B我尝试分别连接数组元素,并希望打印最终替换的值

#!/usr/intel/bin/python2.7

import Tkinter
import Tkinter as tk

le_temp_list =  ['%s', '[%s-1:0]', '[%d:0]', '%s']
le_temp_list_val = ['reg', '`ADR_WTH', 31, 'green']
ar = `' '.join([str(i) for i in le_temp_list])`
ar_val = ','.join([str(i) for i in le_temp_list_val])

print ar
print ar_val
print ar % ar_val
reg [`ADR_WTH-1:0] [31:0] green;
下面是我得到的输出

'%s [%s-1:0] [%d:0] %s'
reg,`ADR_WTH,31,green
Traceback (most recent call last):
  File "padx.py", line 47, in <module>
    print ar % ar_val
TypeError: not enough arguments for format string
后来我想做一些类似的事情

val_array.append(ar%ar_val)
这项工作如下:

"%s %d {N similar elements}" % (a, b, ...N similar values)
所以,你应该做:

print ar % tuple(le_temp_list_val)

无需创建字符串
ar_val
,因为它将被视为唯一的参数。

您可以使用
zip
以交错方式遍历两个列表:

val_array = []

for x, y in zip(le_temp_list, le_temp_list_val):
    val_array.append(x % y)

print(' '.join(val_array))
# reg [`ADR_WTH-1:0] [31:0] green

没错,Python需要4个参数:2个字符串、1个数字、1个字符串,但只得到1个(巨大)字符串。但即使如此,它也提供了回溯(最近一次调用):文件“padx.py”,第47行,打印ar%le_temp_list_val TypeError:格式参数不足string@Vimo,是的,这只适用于元组,我错过了。谢谢你的澄清。