Skip to main content
 首页 » 编程设计

python之如果部分字符串重复,则从列表中删除元素

2025年05月04日44itcoder

我想要做的是从我的列表中删除具有某些重复部分的字符串元素。例如,如果我给出了列表。

ls = ['02/27/1960', '07/21/2004', '08/13/2004', '09/12/2004', '02/27', '07/21', '08/13'] 

我想要输出为

ls_out = ['02/27/1960', '07/21/2004', '08/13/2004', '09/12/2004'] 

即 '02/27' 已经存在于 '02/27/1960' 中。

(注意我不确定这个问题是否重复)

请您参考如下方法:

这也可以通过 for 循环和 any 来解决内置方法:

>>> ls 
['02/27/1960', '07/21/2004', '08/13/2004', '09/12/2004', '02/27', '07/21', '08/13'] 
>>> 
>>> ls_out = [] 
>>>  
>>> for x in ls: 
        if not any([x in item for item in ls_out]): 
            ls_out.append(x) 
 
 
>>> ls_out 
['02/27/1960', '07/21/2004', '08/13/2004', '09/12/2004'] 

或者:

>>> for x in ls: 
        if all([x not in item for item in ls_out]): 
            ls_out.append(x) 
 
 
>>> ls_out 
['02/27/1960', '07/21/2004', '08/13/2004', '09/12/2004']