使用python for循环将数组的特定值替换为其他值

使用python for循环将数组的特定值替换为其他值,python,Python,我有两个像上面这样的数组,我想要像下面这样的输出 staff_text=['31','32'] staffing_title = ['14','28','14','20'] 所以基本上,只要14出现在staff_标题数组中,它就会被staff_文本值替换 例如,如果第一个14被31替换,当第二个14被32替换,依此类推,以下操作将完成: staffing_title = ['31','28','32','20'] 请注意,这会修改staff\u text,因此您可能希望使其在副本上运行 此代

我有两个像上面这样的数组,我想要像下面这样的输出

staff_text=['31','32']
staffing_title = ['14','28','14','20']
所以基本上,只要14出现在staff_标题数组中,它就会被staff_文本值替换


例如,如果第一个14被31替换,当第二个14被32替换,依此类推,以下操作将完成:

staffing_title = ['31','28','32','20']
请注意,这会修改
staff\u text
,因此您可能希望使其在副本上运行


此代码假定
staff\u text
中的元素至少与
staffing\u title
中的
'14'
字符串一样多(但如果没有,则不指定应该发生什么)。

下面是使用列表理解的一行代码:

>>> [t if t != '14' else staff_text.pop() for t in staffing_title]
['32', '28', '31', '20']

我希望arrayI内部的输出值也添加了一行(pythonic方式),@VivekSingh请检查
>>> staffing_title = ['14', '28', '14', '20']
>>> staff_text=['31','32']

>>> res = [staff_text.pop(0) if item == str(14) else item for item in staffing_title ]
>>> print(res)
['31', '28', '32', '20']