2014-03-19 136 views
0

让两个字符串在Python中检查两个字符串?

s='chayote' 
d='aceihkjouty' 

的字符字符串s存在于d有没有内置Python函数来做到这一点?

由于事先

+1

为了帮助人们帮助你,它通常是更具体的一个好主意。通过“d”字符串中的字符,你的意思是你在乎或不关心多重性?例如,如果's =“aabbcc”'和'd =“abc”',是否需要True(因为'a','b'和'c'在'd'中)或False,因为那里's'中有2个'a'字符,d中只有1个字符? – DSM

回答

4

我相信你正在寻找allgenerator expression

>>> s='chayote' 
>>> d='aceihkjouty' 
>>> all(x in d for x in s) 
True 
>>> 

的代码将返回True如果字符串s所有字符都在串d找到。


此外,如果字符串s包含重复的字符,这将是更有效的使用set,使之成为集:

>>> s='chayote' 
>>> d='aceihkjouty' 
>>> all(x in d for x in set(s)) 
True 
>>> 
5

使用sets

>>> set("chayote").issubset("aceihkjouty") 
True 

,或等效:

>>> set("chayote") <= set("aceihkjouty") 
True 
+0

你打败了我......这是经典的做法,因为这个问题本质上是一个集合论的问题。 –

2

试试这个

for i in s: 
    if i in d: 
     print i