检查列表是否包含一个字符串/列表

包含字符串的第一种写法:

l = ['aa','bcb', 'bcc']
b = 'bbc'

if b in " ".join(l):
    print "aa"
else:
    print "bbb"
结果:

bbb

包含字符串的第二种写法:

l = ['aa','bcb', 'bcc']
b = 'bbc'

if b in l:
    print "aa"
else:
    print "bbb"
结果:

bbb
----------------------------------------------------------------------------------------------------------------------------------
包含列表的第一种写法:

a = ['aa','bcb', 'bcc']
b = ['bbc', 'bcc', 'aaa']

for ch in a:
    if ch in b:
        print ch, "is in b"
    else:
        print ch, "is not in b"
结果:

aa is not in b
bcb is not in b
bcc is in b

包含列表的第二种写法:
import itertools

a = ['aa','bcb', 'bcc']
b = ['bbc', 'bcc', 'aaa']

for ch in itertools.ifilter(a.__contains__, b):
        print ch, "is in b"
结果:

bcc is in b
这个方法没有用到if语句,所以只显示配对成功的。

----------------------------------------------------------------------------------------------------------------------------------

判断b是否包含a中的全部成员

a = ['aa','bcb', 'bcc']
b = ['bbc', 'bcc', 'aaa']

res =  not set(a).difference(b)
print res
结果:

False

a = ['aaa', 'bcc']
b = ['bbc', 'bcc', 'aaa']

res =  not set(a).difference(b)
print res
结果:

True
----------------------------------------------------------------------------------------------------------------------------------

返回a中所有不属于b的成员,以及b中所有不属于a的成员:

a = ['aa','bcb', 'bcc']
b = ['bbc', 'bcc', 'aaa']

print set(a).difference(b)
print set(b).difference(a)
结果:

set(['aa', 'bcb'])
set(['bbc', 'aaa'])
----------------------------------------------------------------------------------------------------------------------------------
返回a和b交集以外所有成员的集合:

a = ['aa','bcb', 'bcc']
b = ['bbc', 'bcc', 'aaa']

print set(a).symmetric_difference(b)
print set(b).symmetric_difference(a)
结果:

set(['aa', 'aaa', 'bbc', 'bcb'])
set(['aa', 'bbc', 'aaa', 'bcb'])


参考:

http://blog.shine-it.net/python/checking-whether-a-string-contains-a-set-of-characters

唐唐的代码



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值