Skip to main content
 首页 » 编程设计

Python列表操作

2025年05月04日13落叶无声

我有两个列表 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)