我有两个列表 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 不会包含任何不在 中的数字> list 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 lenght A)的列表,而不仅仅是列表 A 的长度。是否有任何内置函数可以执行此操作?谁能告诉我怎么做?
请您参考如下方法:
您可以使用列表理解:
[i if i not in ListB else 'X' for i in ListA]
要修复当前代码,请使用 in 检查该项目是否在 ListB 中:
for item in ListA:
if item in ListB:
ListC.append('X')
else:
ListC.append(item)
