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

时间:2017-11-28 08:11:14

标签: python

staff_text=['31','32']
staffing_title = ['14','28','14','20']

我有两个像上面那样的数组。我希望输出像

staffing_title = ['31','28','32','20']

所以基本上只要14在staffing_title数组中,它就会替换为staff_text值。

例如,如果第一个14替换为31,当第二个14替换为32时依此类推

2 个答案:

答案 0 :(得分:1)

以下是使用列表理解的一个班轮:

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

答案 1 :(得分:0)

以下将会这样做:

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

请注意,这会修改staff_text,因此您可能希望将其设置为副本。

此代码假设staff_text中的元素至少与'14'中的staffing_title字符串一样多(但之后您不会指定在那里会发生什么) AREN'。T)