如何用一个列表中的另一部分替换一个列表中的字符串的一部分?

时间:2019-05-20 11:48:55

标签: python python-3.x jupyter-notebook

有没有一种方法可以让我根据某种条件(复制粘贴)将一个列表中的一部分字符串替换为另一列表中的另一部分,而不会影响其余部分。我有两个清单

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'

但它似乎不能正常工作,它不是复制部分字符串,而是复制了所有字符串,导致结果不正确

1 个答案:

答案 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']