Python 两个list 找不以某个字符串为开头的剩余字符

现有两个list :

       ['sdb', 'sdc', 'sdd']

       ['sdd1', 'sdd2']

       可以发现,sdd1和sdd2都是以第一个list中的sdd为开头的。现有需求是获取第一个列表中不是第二个列表元素开头的元素,在这个例子中就是sdb,sdc。

#!/usr/bin/env python
# -*-coding:utf-8-*-

list1 = ['sdb', 'sdc', 'sdd']
list2 = ['sdd1', 'sdd2']

s = set()

for i in list1:
    for j in list2:
        if j.startswith(i):
            s.add(i)
s2 = set(list1)
result = s2 - s
print(' '.join(result))

大体思路就是先找到list2中以list1开头的元素,这里是一个嵌套循环,所以存在获取元素重复的情况。

解决重复问题:python set

然后把list1转化为set,再做差操作,与数学中集合操作一致,

最后将结果转化为字符串即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值