我有两个字符串列表。
A = ['HKO', 'HKO', 'HKO']
B = ['12M', 'M4M', 'MKO']
我想合并它们,结果是:
C = ['HKM', 'MKM', 'MKO']
也就是说,如果列表
'M'
中有一个B
,我想保留它,否则我想用索引A中的值替换它。最好的方法是什么?我一直遇到的问题是B's
'M4M'
,因此我无法同时替换'H'
和'O'
。例如,我将得到:['HKM', 'MKO', 'HKM']
谢谢。(我目前掌握的代码如下!)
replace_list = [(0, 2), (1, 0), (1, 2), (2, 0)]
list = []
for i in range(len(mix_list)):
for j in range(len(letters)):
if j != replace_list[i][1]:
list.append(letters[i][j])
else:
list.append('M')
list_join = ("".join(list))
print list
print "join", list_join
去哪里:加入香港
最佳答案
您可以将函数map()
与助手函数func()
一起使用:
A = ['HKO', 'HKO', 'HKO']
B = ['12M', 'M4M', 'MKO']
def func(a, b):
if 'M' in b:
m = map(lambda x, y:
y if y == 'M' else x, a, b)
return ''.join(m)
else:
return a
list(map(func, A, B))
# ['HKM', 'MKM', 'MKO']