【发布时间】:2013-05-09 11:40:05
【问题描述】:
我有两个列表 ListA 和 ListB 如下:
ListA=['1','1','2','2','2','3','4','4','5','5','5','5']
ListB=['1','5']
我正在尝试提出与 List A 长度相同的 List C,但将 List A 中的数字替换为'X' 如果数字在 List B 中。我期待的结果:
ListC=['X','X','2','2','2','3','4','4','X','X','X','X']
仅供参考,ListB 的长度将始终小于 ListA 的长度,并且 ListB 将不包含任何不在 列表 A.
我试过这样:
ListA=['1','1','2','2','2','3','4','4','5','5','5','5']
ListB=['1','5']
ListC=[]
for items in ListB:
for a in ListA:
if items==a:
ListC.append('X')
else:
ListC.append(a)
显然这将创建一个具有 (listB X 长度 A) 的列表,而不仅仅是列表 A 的长度。是否有任何内置函数可以执行此操作?谁能告诉我怎么做?
【问题讨论】:
-
我认为您最好使用替换字典,例如
{1=>X, 5=>O},然后简单地使用newList=[dct.get(x,x) for x in oldList]。