有没有一种方法可以让我根据某种条件(复制粘贴)将一个列表中的一部分字符串替换为另一列表中的另一部分,而不会影响其余部分。我有两个清单
correct_format = ['BWx0520BG6,2x','CBZ3132Bu1,3','CKZ3134BR4,2','SJD8575RZ4,2','UES9151GS5,2']
wrong_format = ['BWL0520BG6,1','CBZ3132BR1,2c','CKZ313\\BR4,1','SJD8|75RZ4,1','UES915*GS5,1']
我要根据一个条件在correct_format和错误_format列表之间进行比较,如果将错误格式的正确部分替换为正确格式的值的一部分,则'BWL0520BG6,1'
仅应成为'BWx0520BG6,1'
,{{1 }}应该被更改。 BWL0520BG6
中的1
应该排除在外。 'BWL0520BG6,1'
应该变成'CBZ3132BR1,2c'
,只有'CBZ3132Bu1,2c'
应该被改变。 CBZ3132BR1
中的2c
应该排除在外。其余的都应该使用。
这是我到目前为止所做的
'CBZ3132BR1,2c'
但它似乎不能正常工作,它不是复制部分字符串,而是复制了所有字符串,导致结果不正确
答案 0 :(得分:0)
这是使用enumerate
和简单迭代的一种方法。
例如:
correct_format = ['BWx0520BG6,2x','CBZ3132Bu1,3','CKZ3134BR4,2','SJD8575RZ4,2','UES9151GS5,2']
wrong_format = ['BWL0520BG6,1','CBZ3132BR1,2c','CKZ313\\BR4,1','SJD8|75RZ4,1','UES915*GS5,1']
for ind, v in enumerate(correct_format):
val = wrong_format[ind].split(",")
val[0] = v.split(",")[0]
wrong_format[ind] = ",".join(val)
print(wrong_format)
输出:
['BWx0520BG6,1',
'CBZ3132Bu1,2c',
'CKZ3134BR4,1',
'SJD8575RZ4,1',
'UES9151GS5,1']