使用Python3.x,我有一段代码生成X
,其中子列表的列表用单引号引起来,并用逗号分隔...需要打印行Y
,并替换{ {1}}。
X
预期产量
X = ['sequence, A, 1, 2, 3',
'sequence, B, 10, 20, 30',
'sequence, C, 100, 200, 300']
Y = ['VEQ','1','map','2','cap',]
'VEQ','1','A','2','1'
'VEQ','1','B','2','10'
'VEQ','1','C','2','100'
替换为Y[field3-map]
,X[field2]
替换为Y[field5-cap]
,X[field3]
的其他字段将保持不变。
我已经尝试根据自己的要求修改下面的参考代码,但是没有用。
Y
答案 0 :(得分:1)
这是一个简单且高效的内存(由于lazy evaluation of map),我正在打印结果,因此只需要一份message
即可被覆盖:
Y
如果要将值存储在某处,则每次都需要拥有X = ['sequence, A, 1, 2, 3',
'sequence, B, 10, 20, 30',
'sequence, C, 100, 200, 300']
Y = ['VEQ','1','map','2','cap',]
retval = Y[:]
for x in map(lambda x: str.split(x, ','), X):
retval[2] = x[1]
retval[4] = x[2]
print(retval)
的单独副本:
Y
答案 1 :(得分:0)
不确定这是否是您想要的东西,但是可以解决:
X = ['sequence, A, 1, 2, 3',
'sequence, B, 10, 20, 30',
'sequence, C, 100, 200, 300']
Y = ['VEQ','1','map','2','cap',]
def replace(X,Y,position_list):
result = []
for x in X:
x = x.split(',')
x = [t.strip() for t in x]
temp = Y.copy()
for pos in position_list:
temp[pos[0] - 1] = x[pos[1] - 1]
result.append(temp)
return result
replace(X,Y,[(3,2),(5,3)])
输出:
[['VEQ', '1', 'A', '2', '1'],
['VEQ', '1', 'B', '2', '10'],
['VEQ', '1', 'C', '2', '100']]
这里position_list
是要替换的(Y_pos,X_pos)元组的列表,例如(3,2)
表示将Y
的第三值替换为{{1}的第二值}