Python3.4字符串包含 & 集合

"""
字符串包含 & 集合
"""

#方法一:
def containsAny(allstr,childstr):
	for c in allstr:
		if c in childstr: return True
	return False

allstr = "老毕很帅嘛"
childstr = "帅"

print(containsAny(allstr,childstr))  # True

#方法二:
def containsAny2(allstr,childstr):
	for item in filter(childstr.__contains__,allstr): #python3里直接使用filter
		return True
	return False

print (containsAny2(allstr,childstr)) # True

#方法三:
#集合的intersection得到交集
#bool(something),转成布尔型,除了为空返回False,其它只要有值都返回True
def containsAny3(allstr,childstr):
	return bool(set(childstr).intersection(allstr))

print (containsAny3(allstr,childstr)) # True

print (containsAny3(allstr,"赞")) # False


#===========================集合拓展:===========================
print ("## 集合联合union: " )
print (set(childstr).union(set(allstr))) #{'嘛', '很', '毕', '老', '帅'}

print ("## 集合差difference: ")
print (set(allstr).difference(set(childstr))) #{'嘛', '很', '毕', '老'}

print("## 集合交集inetersection: ")
print (set(allstr).intersection(set(childstr))) #{'帅'}
print ("## 返回集合中包含的所有属于一个集合且不属于另外一个的元素: ")
print (set(allstr).symmetric_difference(set(childstr))) #{'老', '毕', '很', '嘛'}

#集合的不重复性
test_str = "bixiaoxiaoxiaopengpeng"
#转换成集合
strset = set(test_str)
print(strset) #{'i', 'e', 'o', 'x', 'a', 'g', 'p', 'b', 'n'}

#给集合排序
strlist = list(strset) #先将集合转成list

#sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数
strlist.sort()  #sort没有返回值,但是会对列表的对象进行排序。
print(strlist)  # ->['a', 'b', 'e', 'g', 'i', 'n', 'o', 'p', 'x']


运行结果:

bixiaopeng@bixiaopengtekiMacBook-Pro python_text$ python text_checkcontains.py
True
True
True
False
## 集合联合union:
{'嘛', '老', '毕', '很', '帅'}
## 集合差difference:
{'老', '毕', '很', '嘛'}
## 集合交集inetersection:
{'帅'}
## 返回集合中包含的所有属于一个集合且不属于另外一个的元素:
{'老', '毕', '很', '嘛'}
{'p', 'n', 'g', 'b', 'a', 'x', 'i', 'e', 'o'}
['a', 'b', 'e', 'g', 'i', 'n', 'o', 'p', 'x']

微信公众帐号: wirelessqa

wirelessqa

关于作者:

作者: 毕小朋 | 老 毕 邮箱: wirelessqa.me@gmail.com

微博: @WirelessQA 博客: http://blog.youkuaiyun.com/wirelessqa





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕小烦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值